Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mi 03.01.07 15:22 
Hi.

Ich versuche momentan eine Funktion zu finden die herausfindet mit welchen Programmen der Dateityp .xyz auf einem Computer geöffnet werden kann. Sprich einfach eine Liste der Programme des "öffnen mit..." Menüs.

Ich habe einen Key gefunden der mit schon ziemlich weit bringt:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bmp\OpenWithList

In diesem Key sind z.B. die Programme hinterlegt, die im Öffnen mit...-Dialog einer .bmp Datei auftauchen.

Das Problem ist: Hier finde ich lediglich die Exenamen der Programme. Da ich die Dateien evt. mit Shellexecute mit einem anderem als dem Standartprogramm öffnen will, brauche ich den kompletten Pfad und das Schema nach dem der Öffnen-Parameter übergeben wird.

Diesen Key habe ich scheinbar zwar auch gefunden, aber seht selbst:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Photoshop.BMPFile.9 Hier finde ich z.B. den Pfad zum Default-Icon sowie den Pfad der Datei inklusive dem Kommando zum Öffnen einer Datei, in diesem Fall z.B:
C:\Programme\Adobe\Adobe Photoshop CS2\ImageReady.exe "%1"

Das Problem ist nur das diese Key-Namen (z.B. Photoshop.BMPFile.9) unmöglich von einer automatischen Routine gefunden werden können! Auch Windows dürfte das doch nicht hinbekommen. Da fehlt mir noch irgendeine Zwischenliste in der gespeichert wird in welchen Keys die Informationen für das jeweilige "Öffnen mit..."-Programm gespeichert sind. Doch genau diese Zwischenliste in der Registry suche ich ;)

edit: Ich habe jetzt noch einen Crosspost dazu erstellt in der DP. Vielleicht weiss ja dort noch jemand was! www.delphipraxis.net...st659751.html#659751
Wenn ich dort die Lösung bekomme post ich sie hier.
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Sa 06.01.07 16:51 
Wenn jemand dasselbe Problem hat sollte er mal diesen Thread in der Delphi-Praxis ansehen. Der DP-User Marabu hat einiges gutes dazu geschrieben.