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 ProgID aus registry mit Programmverknüpfen (https://www.delphipraxis.net/102827-progid-aus-registry-mit-programmverknuepfen.html)

Diamondback2007 5. Nov 2007 16:57


ProgID aus registry mit Programmverknüpfen
 
Hallo,

ich bin gerade dabei, werte aus der registry zu lesen,
welche mit einer dateiendung verknüpft sind.
Dort gibt es auf der einen seite eine liste mit
programmen die sehr einfach zu lesen ist.
auf der anderen seite gibt es noch eine liste in der so gennante
ProgIDs stehen.
Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids
Dort stehen dann werte wie:
Code:
jpegfile
oder
Code:
WMP11.AssocFile.MP3
wie kann ich nun aus diesen "werten" exe-namen auslesen?

Vielen dank

gruß

Luckie 5. Nov 2007 16:59

Re: ProgID aus registry mit Programmverknüpfen
 
ProgIDs bezeichnen COM Objekte in DLLs. Es wird sich dabei wohl um COM-Server handeln, die die gewünschte Funktionalität zur Verfügung stellen.

Diamondback2007 5. Nov 2007 17:01

Re: ProgID aus registry mit Programmverknüpfen
 
okay, und haben diese COM-Server eine hostanwendung
oder so etwas die ich auslesen könnte?

gruß

Luckie 5. Nov 2007 17:11

Re: ProgID aus registry mit Programmverknüpfen
 
Die DLL. Der Pfad und Name muss auch in diesem Schlüssel irgendwo stehen.

Diamondback2007 5. Nov 2007 17:36

Re: ProgID aus registry mit Programmverknüpfen
 
und wie komme ich zu dieser dll?
ich habe ja scheinbar nur den namen dieses COM-Servers.
sonst steht da nichts.
der eintrag ist ein" binärer Wert der Länge 0"
der Name des schlüssels entspricht dem namen des servers.

gruß

Luckie 5. Nov 2007 17:52

Re: ProgID aus registry mit Programmverknüpfen
 
Dann musst du dir dazu den Eintrag aus HKCR auslesen. Siehe dazu mein COM.Tutorial auf meiner Seite: http://delphitutorials.michael-puff.de

Diamondback2007 5. Nov 2007 18:12

Re: ProgID aus registry mit Programmverknüpfen
 
danke! :) ich werde es mir mal ansehen. :)
gruß

Diamondback2007 5. Nov 2007 18:33

Re: ProgID aus registry mit Programmverknüpfen
 
hm.... ich glaub ich verstehe es nicht so ganz... :(
tut mir leid... :?

also ich habe einen COM-Server namen wie z.B. "WinRar.ZIP"
nun möchte ich darauf eigentlich nur etwas wie C:\Programme....\WinRar.exe
haben.
ich habe mal etwas in der registry gestöbert und das verzeichnis
HKEY_CLASSES_ROOT/CLSID etwas genauer betrachtet.

dort finde ich zu vielen sachen programmpfade. zu manchen leider nur welche zu dlls.

nun meine frage. wie kann ich bestimmen in welchem schlüssel nun die werte für
"WinRar.ZIP" liegen. suchen kann es ja schlecht sein, das dauert ja stunden.... :(
gibt es eine möglichkeit dies zu beschleunigen?

Gibt es weiterhin aus einer dll eine Art Standartanwedung zu bekommen?
Also aus der "WinRar.ZIP.dll" Ein Winrar.exe?

gruß


EDIT: okay... :wall: vielleicht mal HKEY_CLASSES_ROOT weiter durchsehen :wall:
da steht alles

Kedariodakon 5. Nov 2007 18:42

Re: ProgID aus registry mit Programmverknüpfen
 
Du kennst dich mit Com-Objecte nicht wirklich aus oder?
Wenn es sich da um ein Com-Object handelt, dann brauchst du keinen Pfad, du musst nur das Object erstellen und ihm irgendwie die Datei übergeben :)

Bye christian

Luckie 5. Nov 2007 18:44

Re: ProgID aus registry mit Programmverknüpfen
 
Du kannst dir mit dem Code aus meinem Tutorial die GUID holen. Mit dieser kannst du denn den Schlüssel in der Registry öffnen und den Pfad zur DLL auslesen.
Zitat:

Zitat von Kedariodakon
Wenn es sich da um ein Com-Object handelt, dann brauchst du keinen Pfad, du musst nur das Object erstellen und ihm irgendwie die Datei übergeben :)

Wenn er mein Tutorial durchgelesen hat, sollte er das jetzt wissen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 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