| 

.NET C# Java Javascript Exception

1
In der Systemregistrierung finden sich immer wieder Programme, die über die Systemsteuerung als deinstallierbar aufgeführt werden. Führe ich aber die Deinstallation aus, sind die Programme nicht mehr vorhanden oder das Deinstallationsprogramm ist nicht verfügbar. Wie kann ich mit einer eigenen Anwendung dafür sorgen, das ungültige Einträgfe aus der Systemregistrierung entfernt werden, ohne das das System hinterher crasht oder selbst Fehlfunktionen aufweist?
News:
15.01.2011
Platt 11 2
2 Antworten
1
Für die Programme, die nicht als MSI-Paket vorliegen, musst du alle Schlüssel unter

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall und
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

durchlaufen. Ist die Datei, die im Wert UninstallString angegeben ist, nicht mehr vorhanden, kannst du den Schlüssel (und damit auch den Eintrag in der Systemsteuerung) löschen.

Für Programme, die per MSI installiert wurden, kannst du über WMI die Klasse Win32_Product abfragen. Hier zum schnellen Ausprobieren ein Beispiel in VBscript:

Set objWMIService = GetObject("winmgmts:\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Product", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
WScript.Echo "Caption: " & objItem.Caption
Next



Liebe Grüße, Tom
_____________________________________________________
Toms IT Blog
IT-News mit Schwerpunkt Open Source, Freeware und Portable Apps
http://tomsitblog.wordpress.com/
04.02.2011
Metal-Frog 946 1 7
0
In der Registry unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" findest du die Liste aller installierten Programme.

In diesem Zweig gibt es eine ganze Reihe von Ordnern mit GUIDs welche wiederum die verschiedenen Eigenschaften des Uninstall-Eintrags enthalten. Zum Beispiel enthällt der Schlüssel "Displayname" den Anzeigenamen.

Wenn du einen der Ordner löschst, verschwindet der Eintrag auch aus der Anzeige.
17.01.2011
Floyd 14,6k 3 9

Stelle deine .net-Frage jetzt!