Zum Inhalt springen

[VB.net] Uninstaller


Empfohlene Beiträge

Geschrieben

Hallo,

Ich möchte mittels Code ein in einer Listbox ausgewältes Programm Deinstallieren.

In der Listbox werden .zip Ordner angezeigt, die den Namen von den Programmen haben, die Deinstalliert werden sollen. Also so zum Beispiel:

In der Listbox befindet sich Mozilla Firefox(6.5.13).zip, wenn ich diesen Ordner jetzt auswähle, und auf den Button Deinstallieren klicke, dann soll das Programm Mozilla Firefox deinstalliert werden.

Wie geht das?

Ich habe schon einige Sachen versucht, aber es hat nicht geklappt.

Es handelt sich um VB.NET 2008

Geschrieben

Warum füllst du die Liste nicht so wie es Windows in der SoftwareListe macht?

Prinzipiell funktioniert das ganze über msiexec. Dabei handelt es sich um den Windows Installer.

Die Parameter:

Windows ® Installer. V 4.5.6002.18005

msiexec /Option <Erforderliche Parameter> [Optionale Parameter]

Installationsoptionen

</package | /i> <Produkt.msi>

Installiert oder konfiguriert ein Produkt.

/a <Produkt.msi>

Administrative Installation - Installiert ein Produkt im Netzwerk.

/j<u|m> <Produkt.msi> [/t <Transformliste] [/g <Sprach-ID>]

Kündigt ein Produkt an - m für alle Benutzer, u für den aktuellen Benutzer

</uninstall | /x> <Produkt.msi | Produktcode>

Deinstalliert das Produkt.

Anzeigeoptionen

/quiet

Hintergrundmodus, keine Benutzerinteraktion

/passive

Unbeaufsichtigter Modus - Nur Statusleiste

/q[n|b|r|f]

Legt die Benutzeroberfläche fest.

n - Keine Benutzeroberfläche

b - Einfache Benutzeroberfläche

r - Reduzierte Benutzeroberfläche

f - Vollständige Benutzeroberfläche (Standard)

/help

Hilfeinformationen

Neustartoptionen

/norestart

Kein Neustart nach Abschluss der Installation

/promptrestart

Benutzereingabe, falls Neustart erforderlich ist

/forcerestart

Computer nach Abschluss der Installation immer neu starten

Protokolllierungsoptionen

/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <Protokolldatei>

i - Statusmeldungen

w - Nicht schwerwiegende Warnungen

e - Alle Fehlermeldungen

a - Ausführung von Aktionen

r - Aktionsspezifische Einträge

u - Benutzeranforderungen

c - Ursprüngliche Benutzeroberflächenparameter

m - Informationen betreffend zuwenig Arbeitsspeicher oder schwerwiegendem Abbruch

o - Meldungen betreffend zuwenig Speicherplatz

p - Terminaleigenschaften

v - Ausführliche Ausgabe

x - Zusätzliche Debuginformationen

+ - An vorhandene Protokolldatei anhängen

! - Jede Zeile ins Protokoll aufnehmen

* - Alle Informationen mit Ausnahme der Optionen v und x protokollieren

/log <Protokolldatei>

Entspricht /l* <Protokolldatei>

Aktualisierungsoptionen

/update <Update1.msp>[;Update2.msp]

Übernimmt Update(s).

/uninstall <Patchcode-GUID>[;Update2.msp] /package <Produkt.msi | Produktcode>

Entfernt Update(s) für ein Produkt.

Reparaturoptionen

/f[p|e|c|m|s|o|d|a|u|v] <Produkt.msi | Produktcode>

Repariert ein Produkt.

p - nur wenn eine Datei fehlt

o - wenn eine Datei fehlt oder eine ältere Version installiert ist (Standard)

e - wenn eine Datei fehlt oder eine gleiche bzw. ältere Version installiert ist

d - wenn eine Datei fehlt oder eine andere Version installiert ist

c - wenn eine Datei fehlt oder die Prüfsumme nicht mit dem berechneten Wert übereinstimmt

a - Erzwingt die Neuinstallation aller Dateien

u - Alle erforderlichen benutzerspezifischen Registrierungseinträge (Standard)

m - Alle erforderlichen Computerspezifischen Registrierungseinträge (Standard)

s - Alle vorhandenen Verknüpfungen (Standard)

v - Führt von der Quelle aus und speichert das lokale Paket zwischen

Öffentliche Eigenschaften festlegen

[PROPERTY=Eigenschaftswert]

Weitere Informationen betreffend der Befehlszeilensyntax erhalten Sie im Windows ® Installer SDK.

Copyright © Microsoft Corporation. Alle Rechte vorbehalten.

Teile dieser Software basieren zum Teil auf der Arbeit der Independent JPEG Group.

Du kannst diesen beispielsweise über den Shell oder Wahlweise auch über System.Diagnostics.Process.Start aufrufen.

Kleines Beispiel:

msiexec /uninstall {0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D}

Bei mir würde er jetzt den PDF Creator deinstallieren.

Du kannst es aber auch anders machen.

Wenn du die Liste der aktuell installierten Programme haben möchtest, must du in die Registry und jeden Schlüssel in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall durchloopen.

Bei jedem durchgang suchst du dann in dem jeweiligen Schlüssel nach dem Eintrag DisplayName. Dessen Wert brauchst du, da dort der Programmname hinterlegt ist.

Der Schlüsselname an sich ist der Produktcode.

Entweder du nimmst diesen zu deinstallation mit dem Microsoft Installer oder aber du nimmst den Eintrag UninstallString, welcher ebenfalls in dem Schlüssel vorhanden sein müsste. Dieser enthält meist dem Pfad zur Exe die das jeweilige Programm deinstalliert.

lg

Gateway

Geschrieben

Ich glaube mal, das in deinem Zitat nicht stand, wie man Software Deinstalliert. Und das mit der Liste und den .Zip Dateien muss so sein. Mein eigentliches Problem ist aber das:

In der Listbox wird ein Objekt ausgewaelt, und es wird in dem Label1 der Name des Programms angezeigt. Aber wie weiter? Wie Deinstalliert man das Ausgewaelte Programm, dessen Namen im Label1 zu finden ist?

Geschrieben

Doch das im zitat sind die möglichen Parameter des Microsoft Installer mit dem man Programm installieren oder Deinstallieren kann.

Ich verstehe deine Lage nicht. Beziehungsweise was soll der Zip eintrag nochmal bewirken?

Ich werde sofern ich Zeit finde heute Abend mal ein kleines beispiel schreiben.

Geschrieben

Das mag schon sein,

wer aber will das Windows Nutzer über die Windows eigene Software Liste die Programm deinstallieren kann muss auch dem Windows standart folgen.

Es gibt immer einen Produktcode, wenn das Programm selbst keinen innehält vergibt Windows einen Automatischen....

lg

Gateway

Geschrieben
So hab jetzt mal schnell was geschrieben.

Ich habs anhand einiger Deinstallationen getestet und es funktioniert soweit tadellos.

Es kann natürlich Ausnahmen geben....

Erstellt mit VB.NET unter VS2008 und dem Framework 3.5.

Für den Rest siehe Anhang....

lg

Gateway

Super, danke! :uli

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...