![]() |
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:
Dort stehen dann werte wie:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids
Code:
oder
jpegfile
Code:
wie kann ich nun aus diesen "werten" exe-namen auslesen?
WMP11.AssocFile.MP3
Vielen dank gruß |
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.
|
Re: ProgID aus registry mit Programmverknüpfen
okay, und haben diese COM-Server eine hostanwendung
oder so etwas die ich auslesen könnte? gruß |
Re: ProgID aus registry mit Programmverknüpfen
Die DLL. Der Pfad und Name muss auch in diesem Schlüssel irgendwo stehen.
|
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ß |
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:
![]() |
Re: ProgID aus registry mit Programmverknüpfen
danke! :) ich werde es mir mal ansehen. :)
gruß |
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 |
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 |
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:
|
Re: ProgID aus registry mit Programmverknüpfen
nein ich kenne mich nicht damit aus, und es war auch nicht ziel dieses threades ;)
es gibt in HKEY_CLASSES_ROOT eine liste aller COM-Objekte die ich ausgelesen habe und mit diesen konnte ich den pfad zur anwendung auslesen. hat alles geklappt :) danke! gruß |
Re: ProgID aus registry mit Programmverknüpfen
Zitat:
|
Re: ProgID aus registry mit Programmverknüpfen
Moin Diamondback,
in OpenWithProgIDs stehen die Einträge, die man im Explorer unter "Öffnen mit" angezeigt bekommt. Auslesen kannst Du den Pfad i.d.R., indem Du nach dem jeweiligen Wert unter HKEY_CLASSES_ROOT\<Ausgelesene ID>\shell\open\command den Standardwert ausliest. Du musst aber berücksichtigen, dass dort auch Parameter enthalten sein können. Schau Dir am besten mal ein paar der Einträge an. |
Re: ProgID aus registry mit Programmverknüpfen
Zitat:
danke, aber DAMIT kenne ich mich jetzt wiederrum aus ;) ich habe nur nach einer möglichkeit gesucht, den pfad zu bestimmen. das habe ich ja geschafft! :) gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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