Wie kann ich auflisten/Liste aller installierten Anwendungen in Windows XP?
Wenn ich sage "installierte Anwendung", die ich im Grunde bedeutet jede Anwendung sichtbar in [Systemsteuerung]->[Programme Hinzufügen/Entfernen].
Ich würde es vorziehen, es zu tun in Python, C oder C++ ist auch in Ordnung.
Wie definieren Sie "installierte Anwendung"?
Klarstellung Hinzugefügt
Klarstellung Hinzugefügt
InformationsquelleAutor sharkin | 2009-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie meinen, die Liste der installierten Anwendungen, die im Add\Remove Programs in der Systemsteuerung, Sie können es finden in dem registry-Schlüssel:
mehr Informationen dazu, wie Sie die registry-Baum strukturiert ist, kann hier gefunden werden.
Müssen Sie die winreg-API in python zum Lesen der Werte aus der Registrierung.
Dieser Schlüssel leer ist auf meinem system. Überprüfen Sie die OS lsiting unten auf dem link und du wirst sehen, es ist nicht für WinXP.
dieser Registrierungsschlüssel enthält eine Menge von sub-Tasten (sub-Ordner). Jeweils ein Programm in der uninstall-Liste. Lesen Sie bitte über die Struktur der Schlüssel in dem genannten link.
Ja, tut mir Leid, ich finde Sie in diesem regkey tatsächlich, mein system erstarrte für eine Weile und ich machte eine schnelle judegement da der link, den Sie gab nicht erwähnt hat XP. Denke der Artikel ist einfach nur alt.
Es ist in beiden XP und Vista: vistax64.com/attachments/tutorials/...
InformationsquelleAutor Aziz
Check-out die Win32-Produkt WMI (Windows Management Instrumentation) - Klasse. Hier ist ein tutorial auf die mithilfe von WMI in Python.
Es gibt einige Einschränkungen, aber. WMI kann deaktiviert werden, in einigen PCs. Auch spielt es keine Liste alle Anwendungen sichtbar in der Systemsteuerung -- nur die installiert, die von einem kompatiblen installer.
InformationsquelleAutor Tamas Czinege
Systemsteuerung verwendet die Win32-COM-api, das ist die offizielle Methode (siehe Google-Gruppen, Win32)
Verlassen Sie sich nie auf Registrierung.
Viele Jahre zu spät, aber -1 für nicht zu sagen, die COM-API verwendet wurde. Eine usenet-Gruppe ist groß; und sagt "go Google it" in einer Antwort ist nicht gut genug.
Systemsteuerung verwendet die COM-API, aber ich denke die API liest dann aus der registry. Was indirekt bedeutet, dass Sie verlassen sich auf die registry.
InformationsquelleAutor
Den Microsoft Script Repository hat ein Skript für die Auflistung aller installierten software.
InformationsquelleAutor John Fouhy
Die besten registry-basierte Implementierung, die ich gesehen habe, ist das ein geschrieben von Chris Wright (chris128) gepostet am http://www.vbforums.com/showthread.php?t=598355. Es verwendet mehrere registry-Schlüssel und ist viel komplexer als die Antworten, die derzeit hier gepostet. Es scheint zu produzieren identische Ergebnisse der Programme Hinzufügen/Entfernen app, und wie die ARP-app bietet auch eine option, um updates.
Obwohl es umgesetzt VB.NET es sollte leicht zu konvertieren, um andere .NET Sprachen wie C# oder IronPython. Ich kann mir vorstellen, dass die Umwandlung von IronPython ersten sollte machen es ziemlich einfach, Anschluss zu regelmäßigen Python-wenn es das ist, was Sie wollen, aber ich nur konvertiert C# mich und dann den code aufgeräumt ein wenig.
Nur einen kleinen Fehler hinweisen: GetUserInstallerKeyPrograms() nicht die version für user-Programme auf der Liste, auch wenn es extrahiert. Dies ist einfach zu beheben wenn.
InformationsquelleAutor PolyTekPatrick
C#.net code für das abrufen der Liste der installierten software-mit WMI in Windows xp und win7(wmi ist der einzige Weg, in win7)
InformationsquelleAutor mujjiga
Ich weiß, diese Frage ist alt, die OP erwähnt XP und auch erwähnt, Python, C oder C++, aber ich fand, dass viele der Informationen im Netz über dieses Thema ist entweder unvollständig oder falsch. Ein Beispiel für letzteres ist der Vorschlag der Verwendung der WMI-speziell die
Win32_Product
Klasse; jedoch, wie an anderer Stelle erwähnt, dass die Methode ist langsam, teilweise, weil, es glauben oder nicht, jede MSI-Datei gefunden, eigentlich läuft die Reparatur. Ich fordere, dass die Lösung falsch, weil es sich, wie quälend langsam er ist und wegen seiner fiesen Seite-Effekt. Zum Beispiel, Sie haben bereits ausgewaehlt ein Programm Windows-Dienst, sondern Berufungselect * from Win32_Product
als Teil der Sicherstellung, dass die MSI Reparatur ausgeführt wird, wird offenbar der Dienst wieder aktiviert.Für was es Wert ist, unten ist, was würde ich als das vollständigste Beispiel, um Datum, wenn auch in C#, ich kompiliert es gegen den Rahmen 4.6.1 aber niedrigere Versionen können auch funktionieren.) Es listet 32-bit und 64-bit-Programme installiert; es verfügt über registry-Schlüssel, die Sie verwendet, und es läuft in unter einer Sekunde, zumindest nach caching-kicks in. Wenn Sie bieten Verbesserungen, bitte vorschlagen, statt nur downvoting, und ich werde den code aktualisieren.
Eine Sache, die es ist fehlen noch einige updates. Zum Beispiel, wenn ich es auf meinem Windows 10-system und vergleichen Sie es mit Systemsteuerung | Programme und Funktionen | Installierte Updates, merke ich, dass es nicht zeigen
Security Update for Adobe Flash Player
aus irgendeinem Grund.Habe ich keine guten Grund für die anonyme Methode, es ist nur wie ich dachte in der Zeit-eine Art von Methode-in-der-Methode-Lösung.
[Seufz] und dann sah ich @PolyTekPatrick Antwort. Wie habe ich da was übersehen? LOL
InformationsquelleAutor Craig Silver