Thema: Delphi String abschneiden #0

Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

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

Re: String abschneiden #0

  Alt 23. Jun 2006, 18:43
Hmm...

Also meine Funktion liefert mir nicht die Länge sondern ein HRESULT zurück und das ist immer 0...

Hier mal mein kompletter Code, es geht um das Auslesen von Verknüpfungen (*.lnk):

So funktiert's einwandfrei, danke für eure Hilfe!
Delphi-Quellcode:
procedure ReadLink(const FileName: String;
  out Path, Arguments, Directory, Description, IconPath: String;
  out IconIndex, ShowCmd: Integer;
  out HotKey: Word);
var
  ShellLink: IShellLink;
  PersistFile: IPersistFile;
  FileInfo: TWin32FindData;
begin
  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, ShellLink));
  PersistFile:=ShellLink as IPersistFile;
  PersistFile.Load(StringToOleStr(FileName), STGM_READ);
  SetLength(Path, MAX_PATH+1);
  SetLength(Arguments, MAX_PATH+1);
  SetLength(Directory, MAX_PATH+1);
  SetLength(Description, MAX_PATH+1);
  SetLength(IconPath, MAX_PATH+1);
  with ShellLink do
  begin
    if GetPath(PChar(Path), MAX_PATH, FileInfo, SLR_ANY_MATCH)<>0 then
      ShowMessage('Verknüpfung existiert nicht.');
    GetArguments(PChar(Arguments), MAX_PATH);
    GetWorkingDirectory(PChar(Directory), MAX_PATH);
    GetDescription(PChar(Description), MAX_PATH);
    GetIconLocation(PChar(IconPath), MAX_PATH, IconIndex);
    GetShowCmd(ShowCmd);
    GetHotKey(HotKey);
  end;
  Path := PChar(Path);
  Arguments := PChar(Arguments);
  Directory := PChar(Directory);
  Description := PChar(Description);
  IconPath := PChar(IconPath);
end;
//Edit:
Prozedur etwas übersichtlicher gemacht
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat