Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   INK - Verknüpfungen auslesen (https://www.delphipraxis.net/120616-ink-verknuepfungen-auslesen.html)

J Kadison 13. Sep 2008 18:43


INK - Verknüpfungen auslesen
 
Hallo!

Ich habe ein Problem und zwar möchte ich die Auszuführende Exe aus einer Verknüpfung auslesen.
Hat jemand eine Ahnung wie man das machen?

Ich habe mal gegooglet und folgenden QT herausgefunden

Delphi-Quellcode:
function ink(FileName: String): string;
var
  FDir,
  FName,
  ExeName : PChar;
  z      : integer;
begin
  {Speicher für die PChar-Variablen allozieren}
  ExeName:=StrAlloc(255);
  FName:=StrAlloc(255);
  FDir:=StrAlloc(255);

  StrPCopy(FName, ExtractFileName(FileName));
  StrPCopy(FDir, ExtractFilePath(FileName));
  z:=FindExecutable(FName, FDir, ExeName);
  if z>32 then
    Result:=StrPas(ExeName)
  else
    Result:='';

  {Speicher der PChar-Variablen freigeben}
  StrDispose(FDir);
  StrDispose(FName);
  StrDispose(ExeName);
end; {Michael Hanel}
Mein Problem ist nun nur noch,

Delphi-Quellcode:
[Fehler] Autostart.pas(58): Undefinierter Bezeichner: 'FindExecutable'
Weiß jemand was ich dafür noch einbinden muss, damit das funktionierT?

DeddyH 13. Sep 2008 18:53

Re: INK - Verknüpfungen auslesen
 
Moment, möchtest Du wissen, wo eine Verknüpfung (z.B. auf dem Desktop) hinverweist oder welches Programm mit einer bestimmten Dateiendung verknüpft ist?

toms 14. Sep 2008 09:39

Re: INK - Verknüpfungen auslesen
 
Hallo Joshua

Die API FindExecutable() ist in der Unit ShellAPI.pas deklariert.

Luckie 14. Sep 2008 11:30

Re: INK - Verknüpfungen auslesen
 
Das Ding schreibt sich lnk, mit einem kleinen "l" am Anfang. Das soll ja die Abkürzung für "link" sein und hat mit Tinte (engl. ink) nichts zu tun.

J Kadison 15. Sep 2008 15:56

Re: LNK - Verknüpfungen auslesen
 
Öhm joa das mit dem LNK hab ich en bischen spät bemerkt ^^ aber naja :) ^^

Ich wollte wissen wo die Verknüpfung hinweist.


Delphi-Quellcode:
var
  path, Path1 : PAnsiChar;
begin

  FindExecutable(PChar('Delphi 7'),    PCHAR('C:\Dokumente und Einstellungen\Joshua\Desktop\'),path );
  FindExecutable(PChar('Delphi 7.lnk'), PCHAR('C:\Dokumente und Einstellungen\Joshua\Desktop\'),path1);

end;
bekomm ich aber keine werte. Weder beim einen noch beim anderen?!
was mach ich denn da falsch?

DeddyH 15. Sep 2008 16:01

Re: INK - Verknüpfungen auslesen
 
Schau mal hier, in meiner Kompo ist auch eine Möglichkeit zum Auslesen vorhanden (Funktion GetLinkedFile), die kannst Du Dir ja aus dem Source kopieren.

Neutral General 15. Sep 2008 16:01

Re: INK - Verknüpfungen auslesen
 
Du musst wahrscheinlich Speicherplatz für für die übergebenen Buffer reservieren. (Path,Path1)

Edit: Habe bemerkt, dass bei mir FindExecutabel mit Verknüpfungen nicht funktioniert :gruebel:

DeddyH 16. Sep 2008 08:38

Re: INK - Verknüpfungen auslesen
 
FindExecutable liefert Dir das mit der Dateiendung verknüpfte Programm. Das kann mit *.lnk nicht wie gedacht funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.

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