Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verknüpfung auf dem Desktop? (https://www.delphipraxis.net/47039-verknuepfung-auf-dem-desktop.html)

Fritz the Cat 5. Jun 2005 15:45


Verknüpfung auf dem Desktop?
 
Hallo,

meine Anwendung ist nun so gut wie fertig. Habe mir noch ein eigenes Setup zusammen geschoben (sprich das entpacken von CD auf die Festplatte). Was mir zu meinen Glück noch fehlt, ist eine Verknüpfung auf dem Desktop.

Eines vorweg. Eine Verknüpfung konnte ich schon erfolgreich in jeden beliebigen ("normalen") Ordner erstellen.

Delphi-Quellcode:
uses ShlOBJ, ActiveX, ComObj;

function CreateLink(Source,Target,Beschreibung:string):Boolean;
var psl : IShellLink;
    ppf : IPersistFile;
const
  IID_IPersistFile:
     TGUID = (D1:$0000010B;
              D2:$0000;
              D3:$0000;
              D4:($C0,$00,$00,$00,$00,$00,$00,$46));
begin
    result := False;
    if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl)) then begin
       psl.SetPath(PChar(Source));
       psl.SetDescription(PChar(Beschreibung));
       if SUCCEEDED(psl.QueryInterface(IID_IPersistFile,ppf)) then begin
           ppf.Save(StringToOLEStr(Target),TRUE);
           Result := true;
         end;
       end;
end;

procedure TStart.Button2Click(Sender: TObject);
begin
 CreateLink('C:\Test2\Project.exe','C:\Test2\Project.lnk','Project');
end;

end.
Jetzt meine Frage: Was muß ich in meinen Aufruf ändern, damit die Verknüpfung nicht im Install-Verzeichnis(C:\Test2) landet, sondern auf dem Desktop?

Danke im voraus.

chris 5. Jun 2005 22:40

Re: Verknüpfung auf dem Desktop?
 
hi,

mit ShGetFolderPath() und CSIDL_DESKTOPDIRECTORY kannst du dir den pfad zum desktop holen und damit dann einfach den link erstellen

alcaeus 6. Jun 2005 05:51

Re: Verknüpfung auf dem Desktop?
 
Hallo Fritz the Cat,

Warum erstellst du die Frage in zwei Foren und erwaehnst es nicht mal?
http://www.delphi-forum.de/viewtopic.php?t=43112

Ich glaube ich muss jetzt nicht mehr erwaehnen, dass du "drueben" genug Tipps bekommen hast :roll:

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz