Ich würde gar nicht erst GetIconLocation + ExtractIcon benutzen. SHGetFileInfo funktioniert (zumindest in allen Fällen, in denen ich es bisher genutzt und getestet habe) immer, egal was das für ein Shortcut oder was für eine andere Datei ist.
Du meinst als nur deine Methode?
SHGetFileInfo('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office\Microsoft Excel 2010.lnk', 0, ShFileInfo, SizeOf(TSHFILEINFO), SHGFI_ICON);
Hmmm.. muss ich mal testen.
EDIT:
Nein Funktioniert nicht. Siehe Pic!
Immer der Installer Pfad.
Auch wenn ich den LinkName direkt angebe
SHGetFileInfo(PChar(LnkName), 0, psfi, sizeof(psfi), SHGFI_ICON);
Bekomme ich das Installer Icon.
gruss