Finden von Vorschau -Handler -Guids für Bildtypen (GIF, BMP, JPG usw.)C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Finden von Vorschau -Handler -Guids für Bildtypen (GIF, BMP, JPG usw.)

Post by Anonymous »

Wenn Sie Windows Explorer verwenden und auf ein Element wie eine .docx- oder eine .jpg -Datei klicken, erhalten Sie eine Vorschau des Elements, auf das Sie im Explorer wie diesen geklickt haben. Ich versuche, dies in meiner Windows -Formularanwendung zu replizieren, und es funktioniert gut für .docx- und .xlsx -Dateien, aber es ist nicht für Bild -Dateitypen.
Zu meinem Verständnis werden die Vorschau-Handler unter den GUID registriert {8895B1C6-B41F-4C1C-A562-0D564250836F} In FileTextesion /Shellex. Mit Regedit können Sie sehen, dass .docx -Dateien diese .docx previewHandler -GUID haben, aber wenn Sie sich etwas wie .JPG ansehen, gibt es nichts zu finden. ( https://i.static.net/40v6h.png ). (Ich darf nicht mehr als 2 Links veröffentlichen)

Laut der ersten Antwort auf diesen Beitrag ( stackoverflow.com/questions/3937357/How-to-get-the-icon-pad-and-Index-Associated-A-file-type-type-type-type-type-type. Alle zeigen sich für mich leer. < /p>

Meine Frage: Wie bekomme ich die Vorschau -Handler für die Erweiterungstypen, die Fenster finden können, aber ich kann nicht. Ich denke, es gibt Vorschau -Handler, die irgendwo gespeichert sind, aber ich weiß nicht, wo sie sind oder wie man sie erreicht. < /p>

Dies ist der Code, den ich verwendet, um die Dateien zu erhalten. Erfolgsfrei für Typ .docx und .xlsx, aber nicht für Bildtypen. Ich gehe an jedem im letzten Link erwähnten Ort vorbei, aber alle tauchen null auf. < /P>

private Guid GetPreviewHandlerGUID(string filename)
{
// open the registry key corresponding to the file extension
string extention = Path.GetExtension(filename);
RegistryKey ext = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64);

// open the key that indicates the GUID of the preview handler type
string className = Convert.ToString(ext.GetValue(null));
RegistryKey test = ext.OpenSubKey(className + "\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}");
if (test != null) return new Guid(Convert.ToString(test.GetValue(null)));
// sometimes preview handlers are declared on key for the class
if (className != null) {
test = ext.OpenSubKey(extention + "\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}");
if (test == null)
test = ext.OpenSubKey("SystemFileAssociations\\" + className + "\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}");
if (test == null)
test = ext.OpenSubKey("SystemFileAssociations\\" + extention + "\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}");
if (test == null)
test = ext.OpenSubKey("SystemFileAssociations\\image\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}");
if (test != null) return new Guid(Convert.ToString(test.GetValue(null)));
}

return Guid.Empty;
}
< /code>

Dies ist mein erster Beitrag hier, also hoffe ich, dass ich informativ genug war. Wenn Dinge fehlen, füge ich sie hinzu, wenn ich eine Chance bekomme. Danke.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post