Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SHGetFileInfo und Vista (https://www.delphipraxis.net/93680-shgetfileinfo-und-vista.html)

ringli 9. Jun 2007 12:31


SHGetFileInfo und Vista
 
Nachdem ich mein Problem mit Hilfe der Codelib lösen konnte, hat sich ein neues Problem aufgetan. Und zwar funktioniert die Lösung aus der Codelib scheinbar nicht mehr unter Vista.

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?

Luckie 9. Jun 2007 13:22

Re: SHGetFileInfo und Vista
 
Könntest du den äußerst schwammigen Ausdruck "funktioniert nicht mehr" etwas präzisieren?

ringli 9. Jun 2007 14:25

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:
GetShellDescription('::{450D8FBA-AD25-11D0-98A8-0800361B1103}');
als Beschreibung "Eigene Dateien".

Unter Vista hingegen wird mir keine Beschreibung zurückgegeben.

Hoffe ich habe das Problem jetzt besser beschrieben.

Luckie 9. Jun 2007 14:55

Re: SHGetFileInfo und Vista
 
Was sagt denn GetlastError nach dem Aufruf?

ringli 9. Jun 2007 15:09

Re: SHGetFileInfo und Vista
 
GetLastError gibt den Fehler 1410 (Klasse ist bereits vorhanden) aus.

Luckie 9. Jun 2007 15:13

Re: SHGetFileInfo und Vista
 
Direkt nach dem Aufruf von SHGetFileInfo?

ringli 9. Jun 2007 15:16

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;

Luckie 9. Jun 2007 15:19

Re: SHGetFileInfo und Vista
 
Dann scheinen sich die ClassIDs geändert zu haben unter Vista.

ringli 9. Jun 2007 15:22

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.

ringli 11. Jun 2007 10:02

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... :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz