m9898 Geschrieben 28. Dezember 2010 Geschrieben 28. Dezember 2010 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 Zitieren
Gateway_man Geschrieben 29. Dezember 2010 Geschrieben 29. Dezember 2010 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 Zitieren
m9898 Geschrieben 29. Dezember 2010 Autor Geschrieben 29. Dezember 2010 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? Zitieren
Gateway_man Geschrieben 29. Dezember 2010 Geschrieben 29. Dezember 2010 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. Zitieren
Gateway_man Geschrieben 29. Dezember 2010 Geschrieben 29. Dezember 2010 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 GatewayUninstaller.zip Zitieren
Bubble Geschrieben 29. Dezember 2010 Geschrieben 29. Dezember 2010 Doch das im zitat sind die möglichen Parameter des Microsoft Installer mit dem man Programm installieren oder Deinstallieren kann. Es gibt allerdings auch andere Installations-Systeme. Zitieren
Gateway_man Geschrieben 29. Dezember 2010 Geschrieben 29. Dezember 2010 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 Zitieren
m9898 Geschrieben 29. Dezember 2010 Autor Geschrieben 29. Dezember 2010 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 Zitieren
Empfohlene Beiträge
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.