![]() |
SHGetFileInfo und Vista
Nachdem ich mein
![]() ![]() Die Frage ist jetzt ob sich die GUIDs geändert haben oder ob die Routinen so nicht mehr unter Vista funktionieren. :gruebel: Weiß da jemand etwas genaueres zu? |
Re: SHGetFileInfo und Vista
Könntest du den äußerst schwammigen Ausdruck "funktioniert nicht mehr" etwas präzisieren?
|
Re: SHGetFileInfo und Vista
Funktioniert nicht mehr bedeutet in dem Fall das keine Werte mehr ermittelt werden.
Kleines Beispiel: Unter Win2003 Server liefert mir der Aufruf von
Delphi-Quellcode:
als Beschreibung "Eigene Dateien".
GetShellDescription('::{450D8FBA-AD25-11D0-98A8-0800361B1103}');
Unter Vista hingegen wird mir keine Beschreibung zurückgegeben. Hoffe ich habe das Problem jetzt besser beschrieben. |
Re: SHGetFileInfo und Vista
Was sagt denn GetlastError nach dem Aufruf?
|
Re: SHGetFileInfo und Vista
GetLastError gibt den Fehler 1410 (Klasse ist bereits vorhanden) aus.
|
Re: SHGetFileInfo und Vista
Direkt nach dem Aufruf von SHGetFileInfo?
|
Re: SHGetFileInfo und Vista
Ja, direkt nach dem Aufruf von SHGetFileInfo. So sieht die Funktion im Moment bei mir aus:
Delphi-Quellcode:
function GetShellDescription(const Name:String):String;
var FileInfo:TSHFileInfo; Flags:Integer; begin showmessage('#' + IntToStr(GetLastError) + ' : ' + SysErrorMessage(GetLastError)); ZeroMemory(@FileInfo, SizeOf(FileInfo)); Flags:=SHGFI_DISPLAYNAME; SHGetFileInfo(PChar(Name), 0, FileInfo, SizeOf(FileInfo), Flags); showmessage('#' + IntToStr(GetLastError) + ' : ' + SysErrorMessage(GetLastError)); Result:=FileInfo.szDisplayName; end; |
Re: SHGetFileInfo und Vista
Dann scheinen sich die ClassIDs geändert zu haben unter Vista.
|
Re: SHGetFileInfo und Vista
Hmm... und wo finde ich die neuen ClassID's? Weil die ClassID für die "Eigenen Dateien" ist in der Registry jedenfalls vorhanden.
|
Re: SHGetFileInfo und Vista
Hat keiner eine Idee wo ich die neuen ClassID's bzw. GUID's finden könnte? Ich hab schon stundenlang gegoogelt bin aber nicht fündig geworden... :(
|
Re: SHGetFileInfo und Vista
Ich weiß ich nerve, aber hat denn wirklich keiner eine Idee wo ich die neuen ClassID's bzw. GUID's finden könnte? Oder gibt es unter Vista wieder einen anderen Weg an die Beschreibung für die "Eigenen Dateien" bzw. "Dokumente" komme?
|
Re: SHGetFileInfo und Vista
Teste doch mal die Splitter-Demo aus den
![]() @Micha, wenn nicht, sag mal einen Ton, und du kriegst die aktuelle ZIP. |
Re: SHGetFileInfo und Vista
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Matthias!
Also die Splitterdemo liefert auch nur das zurück was mir SHGetFileInfo unter Angabe des Pfades zu den "Eigenen Dateien" zurückgibt. Dabei ist es egal ob die Angabe in Form von C:\Users\Benutzername\Documents oder SHGetSpecialFolderLocation(CSIDL_PERSONAL) erfolgt. Was eben nicht mehr bzw. scheinbar nur bis Windows XP funktioniert ist die Angabe einer GUID in der Form ::{450D8FBA-AD25-11D0-98A8-0800361B1103}. Grundsätzlich funktioniert es ja mit der Pfadangabe, aber ich hatte die Hoffnung das ich über die GUID an die Bezeichnung komme wie die "Eigenen Dateien" auf dem Desktop dargestellt werden und wie es bis Windows XP auch problemlos funktioniert. Auf dem Desktop werden die "Eigenen Dateien" ja nicht als Dokumente bezeichnet sondern bspw. mit Max Mustermann. Dazu kommt auch noch das sich das Icon auf dem Desktop von dem unterscheidet was SHGetFileInfo unter Angabe eines Pfades zurückliefert. Anbei mal ein Screenshot auf dem man den Unterschied zwischen den beiden Icons als auch der Beschreibung sieht. [EDIT] Screenshot aktualisiert. Copy- & Paste-Fehler korrigiert... :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 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