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 mit Shellexecute auch Links folgen (https://www.delphipraxis.net/51041-mit-shellexecute-auch-links-folgen.html)

yankee 4. Aug 2005 23:04


mit Shellexecute auch Links folgen
 
Ich habe mir ein Programm geschrieben, welches bestimmte Dateien mit dem Standardprogramm öffnet. ALso kurz so:
Delphi-Quellcode:
shellexecute(MainForm.Handle, 'open', PChar(datei), nil, PChar(pfad), SW_SHOW);
Ich will damit erreich, dass das gleich passiert, wie es passieren würden, wenn man mit der Maus im Explorer doppelt drauf klickt. Aber leider habe ich festgestellt, dass das mit Links (=Verknüpfungen) nicht funzt.
Was muss ich da machen?

Jelly 4. Aug 2005 23:28

Re: mit Shellexecute auch Links folgen
 
Also erstens mal ist der Pfad wohl bei Links irrelevant... Setze dort ebenfalls einfach nil.

Wie sieht dein Link denn genauer aus... Du musst schon http:// vorstellen, rsp. mailto: wenn du deinen Mailclient öffnen willst.

yankee 4. Aug 2005 23:33

Re: mit Shellexecute auch Links folgen
 
Zitat:

Zitat von Jelly
Also erstens mal ist der Pfad wohl bei Links irrelevant... Setze dort ebenfalls einfach nil.

Wie sieht dein Link denn genauer aus... Du musst schon http:// vorstellen, rsp. mailto: wenn du deinen Mailclient öffnen willst.

Jetzt jhast du mich falsch verstanden. Ich meinte keine Internetlinks, sondern so Dateilinks. Also diese Symbole, die man üblichwerseie auf dem Desktop, im Startmenü und so weiter hat :-)

EDIT: Schidt, immernoch nicht präzise. Also ich meine Eine Verknüpfung auf eine Anwendung. Alternativ könnte ich natürlich an der Endung .lnk erkennen, dass es sich um einen Link handelt und diesen dann untersuchen. ABer auch das weiß ich cniht wie geht :-(.

yankee 5. Aug 2005 12:03

Re: mit Shellexecute auch Links folgen
 
Nach weiterer erschöpfender Googlelei habe ich doch noch was gefunden:
http://www.informatik.hu-berlin.de/~...index.shtml.de
da habe ich mir TShellLink runtergeladen. Damit ist es dann ganz einfach :-):
Delphi-Quellcode:
if extractFileExt(datei) ='.lnk' then
begin
    link :=TShellLink.Create;
    link.LoadFromFile(pfad + datei);
    pfad :=link.Path;
    datei :=extractFileName(pfad);
    pfad :=extractFilePath(pfad);
    link.Free;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 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