Installierte Programme über die Registrierung erkennen
Brauche ich einen Prozess zu entwickeln, der erkennt, wenn die Benutzer die computer sind bestimmte Programme installiert und wenn ja, welche version. Ich glaube, ich brauche eine Liste mit den registry-Lage und die Tasten zu schauen und zu füttern, um zu dem Programm, das ist nicht ein problem. Gibt es einen besseren Weg, dies zu erreichen?
Mein Erster Gedanke war zu prüfen, in der registry bei der deinstallation Einträge, aber es scheint eine der apps, die ich wünschte, zu erkennen, nicht haben. Was ist der standard-Speicherort für alle Windows-Anwendungen verwenden, um einen Eintrag vorzunehmen?
InformationsquelleAutor der Frage Mark Stahler | 2009-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benutzer-spezifische Einstellungen geschrieben werden sollten HKCU\Software -, System-spezifische Einstellungen in HKLM\Software. Unter diesen Schlüssel, Struktur
[software vendor name]\[application name]
(z.B.HKLM\Software\Microsoft\Internet Explorer
) ist vielleicht die häufigste, aber das ist nur eine Konvention, kein Naturgesetz.Viele (die meisten?) Anwendungen fügen Sie auch Ihre Einträge deinstallieren, um
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\[app name]
, aber wieder nicht alle Programme dies tun.Diese sind die wichtigsten Tasten; allerdings, wird der Inhalt der registry nicht zu vertreten haben Sie die installierte software genau - vielleicht wurde die Anwendung einmal installiert, aber dann war manuell gelöscht werden, oder vielleicht ist der uninstaller nicht entfernen Sie alle Spuren von es. Wenn Sie sicher sein wollen, überprüfen Sie das Dateisystem, um zu sehen, wenn die Anwendung immer noch vorhanden ist, wo seine registry-Einträge, die sagen, es ist.
Edit:
Wenn Sie ein Mitglied der Gruppe Administratoren sind, können Sie die
HKEY_USERS
hive - jedes Benutzers HKCU dort tatsächlich wohnt (Sie müssen wissen, die Benutzer-SID, oder gehen Sie durch alle davon).Hinweis: Als @Brian Ensink sagt, "installiert" ist ein bisschen vage Konzept - werden wir versuchen zu finden, was die user laufen könnte? Einige software nicht selbst schreiben in die Registry: Suche nach "portable apps" zu sehen-apps, die speziell modifiziert, um Sie direkt von dem Medium (CD/USB) und nicht irgendwelche Spuren zu hinterlassen auf dem computer. Wir können auch zum Scannen der Festplatten und Netzwerk-Festplatten, und alles, was die Benutzer-downloads und weltweit zugänglich zu Windows-Freigaben im Internet (ja, so etwas existiert legitim -
\\live.sysinternals.com\tools
in den Sinn kommt). In diese Richtung, es gibt keine wirkliche Grenze dessen, was der Benutzer ausführen kann, es sei denn, verhindert, die durch das system Politik.InformationsquelleAutor der Antwort Piskvor
Auf 64-bit-Systeme die x64 key ist:
Meisten Programme die dort aufgeführt sind. Blick auf die Tasten:
DisplayName
DisplayVersion
Beachten Sie, dass die zuletzt nicht immer gesetzt!
Auf 64-bit-Systemen die x86-Taste (in der Regel mit mehr Einträge):
InformationsquelleAutor der Antwort Bernd Ott
Könnten Sie MSI-API zum auflisten alles installiert von der Windows-Installer aber das wird nicht eine Liste aller der software auf einer Maschine. Ohne zu wissen, mehr über das, was Sie brauchen, ich denke, das Konzept von "installiert" ist ein wenig vage. Es gibt viele Möglichkeiten, um die Bereitstellung von software zu einem system, angefangen von großen, komplizierten Installationsprogrammen, um ZIP-Dateien, und alles dazwischen.
InformationsquelleAutor der Antwort Brian Ensink
Einer Anwendung, die nicht braucht, um irgendwelche registry-Eintrag. In der Tat, viele Anwendungen nicht installiert werden müssen, auf alle. U3-USB-sticks sind ein gutes Beispiel; die Programme auf Ihnen laufen Sie einfach aus der Datei system.
Wie erwähnt, die meisten guten Anwendungen finden Sie über Ihren deinstallieren, registry-Schlüssel. Dies ist eigentlich ein Schlüsselpaar pro Benutzer und pro Maschine (HKCU/HKLM - Piskvor erwähnt nur die HKLM -). Es ist nicht (immer) geben Sie das Installationsverzeichnis, wenn.
Wenn es in HKCU, dann müssen Sie realisieren, dass
HKEY_CURRENT_USER
wirklich bedeutet "Aktueller Benutzer". Andere Benutzer haben Ihre eigenen HKCU-Einträge und Ihre eigene software installiert. Sie finden nicht diese. Lesen jederHKEY_USERS
hive ist eine Katastrophe in einem Firmen-Netzwerk mit servergespeicherten Profilen. Sie wirklich nicht wollen, zu Holen, 1000 Konten von Ihrem remote - [USA|China|Europa] office.Selbst wenn eine Anwendung installiert ist, und Sie wissen, wo es möglicherweise nicht die gleiche "version" Vorstellung, die Sie haben. Die beste Quelle ist die "version" - Ressource in der ausführbaren Dateien. Das ist in der Tat ein plural, also haben Sie Sie zu finden alle, die Extrakt-version die Ressourcen aller und im Falle eines Konflikts decid auf etwas vernünftiges.
So viel Glück. Es gibt döst Möglichkeiten zu scheitern.
InformationsquelleAutor der Antwort MSalters
Zusätzlich zu all den registry-Schlüssel oben erwähnt, Sie können auch zu suchen, in HKEY_CURRENT_USER\Software\Microsoft\Installer\Products für Programme installiert, nur für den aktuellen Benutzer.
InformationsquelleAutor der Antwort David Airapetyan
Können Sie ein PowerShell-Skript, um zu schauen, registriert und bekommen die installierten Programm-details. Das Skript Balg erzeugt eine Datei mit der kompletten Liste der installierten Programme. Speichern Sie es mit ".ps" Erweiterung und klicken Sie doppelt auf die Datei.
InformationsquelleAutor der Antwort Arivan Bastos
Scheint, wie etwas bestimmtes suchen, um das installierte Programm würde besser funktionieren, aber unter HKCU\Software und HKLM\Software noch die Flecken zu sehen.
InformationsquelleAutor der Antwort Nick
Win32-Produkt-zeigt niemals alles, nur software installiert, die über einen MSI-installer (soweit ich das sagen kann.)
Es gibt viele software-Pakete, die man installiert, über andere Installateure, die sich nicht in es. ein anderer Weg ist nötig.
InformationsquelleAutor der Antwort Naikrovek