Hilfe zum Auslesen eines Registry-Verzeichnisses zur Weiterverwendung

  • Hallo zusammen,

    ich habe folgendes Problem:

    Ich möchte einen Automatismus zur Deinstallation eines spezifischen Programms, was sich nicht über die Uninstall-Befehle bewerkstelligen lässt, erstellen.

    Der Aufruf über das Control Panel ist mir zu unsauber und scheitert auch an der UAC (da der Aufruf wiederum unabhängig eine msi ausführt, bringt mir auch #requireadmin nichts).

    Jetzt gibt es bei Windows die entsprechenden Installer-Pakete als msi unter C:\Windows\Installer.

    Da, soweit ich weiß, die Benennung dynamisch ist und ich mich nicht auf eine eindeutige Benennung verlassen kann, möchte ich diese Information aus der registry kriegen. Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-*-*-*\Products\*ID*\InstallProperties bekomme ich diese Info aus der REG_SZ "LocalPackage".

    Da aber auch der Pfad hierhin dynamisch sein kann, möchte ich aus der fixen Info, dass sich dieser Key mit der Info zum Installer-Paket unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\Unterordner befindet, mit Hilfe eines Tricks, diese Dynamik umgehen, indem ich nach dem Key "Publisher" suche, dessen Wert mir bekannt und eindeutig ist. Dieser befindet sich im selben Verzeichnis, sodass ich mit der damit bekanntgewordenen Info gezielt den Key "LocalPackage" auslesen und damit die Installer-msi der Software erhalte, die ich wiederum direkt aufrufen und somit der UAC entgegenwirke, weil ich dann den Aufruf der msi direkt aus meinem Script (das mit Admin-Rechten gestartet ist) aufrufen kann.

    Ich brauche Hilfe, wie ich den Registry-Pfad des Ergebnis-Keys "Publisher" abgreifen und in eine Variable packen kann, um diese weiterverwenden zu können.

    Leider habe ich bei meiner Suche nur Lösungen zur Weiterverwendung des Such-Keys gefunden, nicht aber des Verzeichnisses.

    Danke euch schon mal.

  • Möchtest du den Pfad finden, oder nur auslesen? Denn der komplette Pfad steht ja oben in der Zeile unter der Menüzeile (Datei, Bearbeiten, Ansicht, ...)

    Falls du das möchtest: Hast du mal das "AutoIt Window Info"-Tool ausprobiert? Das sagt dir doch, welche ID die einzelnen Elemente in deinem Regedit haben und über die ID lässt sich der Handle. Mit dem wiederum kannst du dann den Inhalt mit GuiCtrlRead auslesen.

  • mein Ansatz quick & dirty... ^^

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)