![]() |
Symbole auslesen
Habe mir eine kleine Funktion geschrieben um Symbole auszulesen.
Delphi-Quellcode:
Läuft auch ganz gut, aber bei *.lnk Dateien klappt es nicht. Was mache ich da falsch?
function GetIcon(const AExtension: string; ASmall: Boolean): HIcon;
var Info: TSHFileInfo; Flags: Cardinal; begin if ASmall then Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES or SHGFI_LINKOVERLAY; SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags); Result := Info.hIcon; end; |
Re: Symbole auslesen
Bei *.lnk-Dateien handelt es sich um Verknüpfungen. Diese selbst enthalten keine Symbole, sondern benutzen die Symbole aus der verlinkten Datei oder einer (Windows-) DLL. Du musst also die verknüpfte Datei nach Symbolen durchsuchen und nicht die Verknüpfung selbst.
MfG Binärbaum //Edit: Rechtschreibung nachgebessert |
Re: Symbole auslesen
Vielen Dank. Ich bin dann einen anderen Weg gegangen und habe es selbst hinbekommen. Für Alle die evtl. ein ähnliches Problem haben, hier das Listing.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; Icon: TIcon; ListItem: TListItem; FileInfo: SHFILEINFO; begin Icon := TIcon.Create; ListView1.Items.BeginUpdate; try For i := 0 To FileListBox1.Items.Count - 1 do begin with ListView1 do ListItem := ListView1.Items.Add; SHGetFileInfo(PChar(FileListBox1.Items[i]), 0, FileInfo, SizeOf(FileInfo), SHGFI_DISPLAYNAME); Listitem.Caption := FileInfo.szDisplayName; SHGetFileInfo(PChar(FileListBox1.Items[i]), 0, FileInfo, SizeOf(FileInfo), SHGFI_TYPENAME); ListItem.SubItems.Add(FileInfo.szTypeName); SHGetFileInfo(PChar(FileListBox1.Items[i]), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_LARGEICON); icon.Handle := FileInfo.hIcon; ListItem.ImageIndex := ImageList1.AddIcon(Icon); DestroyIcon(FileInfo.hIcon); end; finally Icon.Free; ListView1.Items.EndUpdate; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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