Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#65

Re: Autostart Manager

  Alt 21. Sep 2006, 13:55
Das wäre der Code (etwas abgewandelt), den ich zum Auslesen von Verknüpfungen verwende.
Eigentlich kann es nur an diesem liegen.

Der Prozedur übergibst Du den vollständigen Dateinamen einer Verknüpfung und postest mir dann, was in der ShowMessage angezeigt wird:
Delphi-Quellcode:
uses
  {...} ActiveX, ShlObj, ComObj;


  procedure NewItemLnk(const FileName: String);
  var s, t: String; ShellLink: IShellLink; PersistFile: IPersistFile; FileInfo: TWin32FindData;
  begin
    t := 'Datei nicht vorhanden oder sonstiger Fehler';
    if SUCCEEDED(CoCreateInstance(CLSID_ShellLink,nil,CLSCTX_INPROC_SERVER,IShellLink,ShellLink)) then
    begin
      PersistFile:=ShellLink as IPersistFile;
      PersistFile.Load(StringToOleStr(FileName),STGM_READ);
      SetLength(s,MAX_PATH+1);
      if ShellLink.GetPath(PChar(s),MAX_PATH,FileInfo,SLR_ANY_MATCH)=0 then
      begin
        t := 'Name:' +#9+ ExtractFileName(ChangeFileExt(FileName,'')) +#13#10;
        t := t + 'Datei:' +#9+ PChar(s) +#13#10;
        ShellLink.GetArguments(PChar(s),MAX_PATH);
        t := t + 'Parameter:' +#9+ PChar(s) +#13#10;
        //Befehl setzt sich aus Datei und Parameter zusammen, ist zum Testen aber nicht relevant
        t := t + 'Ort:' +#9+ ExcludeTrailingPathDelimiter(ExtractFilePath(FileName)) +#13#10;
        //auch Beschreibung und die Fenstergröße tun hier nichts zur Sache
      end;
    end;
    ShowMessage(t);
  end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat