Avatar billede smith1 Nybegynder
29. september 2004 - 20:21 Der er 9 kommentarer

Opret en genvej med param

jeg bruger denne kode til at oprette en genvej.
http://delphi.about.com/library/weekly/aa091499.htm
Men hvordan kan jeg oprette en genvej med en param??? -start.
c:\mit_program.exe -start

og hvordan bruger jeg %systemroot% og %windir% ??
Avatar billede stoney Nybegynder
30. september 2004 - 00:21 #1
Ændre denne linie TargetName := 'c:\windows\calc.exe';
til TargetName := ParamStr(1);
og put det hele i din OnFormCreate

Stoney
Avatar billede hrc Mester
30. september 2004 - 08:14 #2
En lidt bedre løsning var måske at bruge CmdStr der tager alle parametre på én gang og derefter pakke stringen ind i apostroffer vha QuotedStr eller lignende. Må undersøge hvordan man får genereret strengen korrekt á lá:

  "C:\Program Files\My Oddly Named Company\MyApp.exe" -a:"Dette er en test" -b
Avatar billede smith1 Nybegynder
30. september 2004 - 17:51 #3
har du fundet ud af hvordan man går??
Avatar billede hrc Mester
01. oktober 2004 - 08:56 #4
Man rejser sig op, holder balancen og så prøver man at sætte ét ben foran det andet - det tager lidt tid, men man mestrer det hurtigt ;-)
Avatar billede stoney Nybegynder
01. oktober 2004 - 10:55 #5
hrc> Du er en hård mand :-)

smith1> Hvad er det du ikke forstår ?

Stoney
Avatar billede smith1 Nybegynder
01. oktober 2004 - 17:35 #6
jeg mente hvordan man "gør" //taste fejl...

jeg kan ikke finde ud af hvordan man bruger: CmdStr og QuotedStr.

når jeg bruger CmdStr() får jeg fejl, skal jeg tilføje noget til min uses??
hvis jeg bruger QuotedStr() laver den ikke noget link !?!?!

bruger jeg TargetName := ParamStr(1); så laver den en genvej til "denne computer"
Avatar billede stoney Nybegynder
01. oktober 2004 - 19:46 #7
Prøv at starte dit program fra en prompt

c:\project1.exe "d:\test\program.exe"

Så vil den lave en genvej til d:\test\program.exe

Gør det til en vane at bruge dobbelt anførselstegn i tilfælde af at der
skulle være et mellem i sti/program

Stoney
Avatar billede smith1 Nybegynder
02. oktober 2004 - 17:11 #8
kan ikke få den til at gemme et link så her: "c:\app.exe -message"

procedure TForm1.FormShow(Sender: TObject);
var
  parameter: string;
begin
  parameter := ParamStr(1);
  if parameter = '-message' then
  begin
    ShowMessage('Parameter -message.');
  end;
  if parameter = '' then
  begin
    ShowMessage('No parameter.');
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  IObject    : IUnknown;
  ISLink    : IShellLink;
  IPFile    : IPersistFile;
  PIDL      : PItemIDList;
  InFolder  : array[0..MAX_PATH] of Char;
  TargetName : String;
  LinkName  : WideString;
begin
  TargetName := ParamStr(0);

  IObject := CreateComObject(CLSID_ShellLink);
  ISLink  := IObject as IShellLink;
  IPFile  := IObject as IPersistFile;

  with ISLink do begin
    SetPath(pChar(TargetName));
    SetWorkingDirectory
      (pChar(ExtractFilePath(TargetName)));
  end;

  InFolder := 'c:\';


  LinkName := InFolder + '\Delphi Created Link.lnk';
// LinkName := '"' + LinkName + '"' + ' -message';  ??

  IPFile.Save(PWChar(LinkName), false);
end;
Avatar billede smith1 Nybegynder
02. oktober 2004 - 17:12 #9
"c:\app.exe" -message    :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester