Avatar billede jolly_jay Nybegynder
14. december 2002 - 22:23 Der er 4 kommentarer og
1 løsning

Lave en genvej

Hvordan kan jeg få delphi til at lave en .lnk fil (lige som dem man får når man laver en genvej med windows?)

Fordi i et tedit felt står der en sti til et program, så nu vil jeg gerne have delphi/mit program til at lave text'en der står i edit feltet til at blive til en genvej som man så kan gemme et sted.

Håber nogen kan hjælpe
Avatar billede nca Juniormester
14. december 2002 - 22:52 #1
Prøv denne kode som er fundet på http://delphi.about.com/library/weekly/aa091499.htm

uses ShlObj, ActiveX, ComObj;
...
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 := 'c:\windows\calc.exe';

  {Use TargetName:=ParamStr(0) which
  returns the path and file name of the
  executing program to create a link to your
  Application}

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

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

  // if we want to place a link on the Desktop
  SHGetSpecialFolderLocation
    (0, CSIDL_DESKTOPDIRECTORY, PIDL);
  SHGetPathFromIDList
    (PIDL, InFolder);

  {
  or if we want a link to appear in
  some other, not-so-special, folder:
  InFolder := 'c:\SomeFolder'
  }

  LinkName := InFolder + '\Delphi Created Link.lnk';
  IPFile.Save(PWChar(LinkName), false);
end;
Avatar billede jolly_jay Nybegynder
14. december 2002 - 23:04 #2
prøver jeg lige.
Avatar billede jolly_jay Nybegynder
15. december 2002 - 00:30 #3
Er der en måde man kan skrive parameter som "'c:\windows\calc.exe" +fullscreen +test  o.s.v?
Avatar billede Slettet bruger
15. december 2002 - 19:46 #4
Prøv at se lidt på eksemplet på Borrisholt.com

http://www.borrisholt.com/ShellAPI/DelphiSource/Link.zip
Avatar billede Slettet bruger
15. december 2002 - 20:06 #5
Prøv:

uses ComObj, ActiveX, ShlObj, Registry;
Procedure PlaceLinkOnDeskTop(FileName : TFileName; Parameter:String);

  Function GetDesktopFolder : String;
  Const
    Key = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\';
  begin
    Result := '';
    With TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      if OpenKey(key, FALSE) then
        Result := ReadString('Desktop');
    finally
      Free;
    end;
  end;

var
  SL: IShellLink;
  PF: IPersistFile;
  LnkName: WideString;
begin
  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, SL)); { IShellLink implementers are required to implement IPersistFile }
  PF := SL as IPersistFile;
  OleCheck(SL.SetPath(PChar(FileName)));  // set link path to proper file
  SL.SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
  SL.SetArguments(PChar(Parameter));
  LnkName := GetDesktopFolder + #92 + ChangeFileExt(ExtractFileName(FileName), '.lnk');
  PF.Save(PWideChar(LnkName), True);      // save link file
end;
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