Installierte Programme ermitteln

DominikF

Grünschnabel
Erstmal, hallo alle zusammen! :)

Ich möchte eine Klasse schreiben die automatisch ermittelt, ob und wo bestimmte Programme auf einem Rechner installiert sind, um sie anschließend aus einer Java-Application heraus starten zu können. Die Java-Application muss nur unter Windows XP/Vista ablauffähig sein.

Grundfrage:
Wie kann man unter Java ermitteln welche Programme auf einem Rechner installiert sind?

Mögliche Ansätze?!
Auslesen der Daten aus der Registry
Durchsuchung des kompletten Dateisystems

Probleme:
Nicht alle Programme tragen sich in der Registry ein.
Eine komplette Durchsuchung des Dateisystems ist Zeitaufwendig.

Weitere Fragen:
Kennt irgendjemand vielleicht eine einfache, zeitunaufwendige Möglichkeit um das Problem zu lösen?
Gibt es vielleicht eine C/C++-Funktion die man über das JNI einbinden könnte?
Führt Windows irgendeine Art von Liste über alle installierten Programme?

MFG Dominik
 
Moin!
Alle Listen, welche Windows führt, werden ihren Ursprung sicher in der Registry haben.
Deswegen würde ich auch beim Ermitteln die Registry durchsuchen (beispielsweise damit :https://sourceforge.net/projects/jregistrykey) oder nativ :http://www.trustice.com/java/jnireg/

Die einzige Liste, welche mir überhaupt so auf Anhieb einfällt, werde diese, welche man auch in der Software Übersicht zu sehen bekommt.. :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

*grüssle*
MeinerEiner
 
Erstmal, hallo alle zusammen! :)
Führt Windows irgendeine Art von Liste über alle installierten Programme?

MFG Dominik

Ja...die die man unter Software in der Systemsteuerung finden kann...

Alle exe Dateien suchen ist sicherlich nicht sinnvoll...da nicht jede Exe ein gewolltes Programm ist und schon garnicht viel über das Programm aussagt.

Daher wird dir nichts anderes übrig bleiben als die registry durchzugehen....
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

http://www.tutorials.de/forum/java/176760-windows-registry-lesen-schreiben-mit-java.html

verdammt zu langsam^^
 
Danke für die Hinweise!

Der Key löst zumindest schon mal eine Teil des Problems, abgesehen von den Programmen, die sich dort nicht eintragen z.B. Jar-Dateien
Die Bibliothek registrykey kannte ich noch nicht. Sie sieht auf den ersten Blick sehr gut aus. :)

EDID: Auf den zweiten Blick auch! Funktioniert einwandfrei. :)
 
Zuletzt bearbeitet:
Zurück