Page 1 sur 1

Désinstaller un programme silencieusement

Posté : mer. 29 mai 2019 19:48
par Wiltech
Bonjour,
j'aurais besoin d'aide pour désinstaller avec un script un programme silencieusement et plus particulièrement TeamViewer cela est t'il possible ?

Merci à tous ceux qui m'aiderons :D :D

Re: Désinstaller un programme silencieusement

Posté : mer. 29 mai 2019 21:46
par TommyDDR
Clé : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
Cherchez TeamViewer
Regardez la valeur de "QuietUninstallString"

Exemple pour Discord : C:\Users\TommyDDR\AppData\Local\Discord\Update.exe --uninstall -s

Voilà !

Re: Désinstaller un programme silencieusement

Posté : mer. 29 mai 2019 21:55
par Wiltech
TommyDDR a écrit : mer. 29 mai 2019 21:46 Clé : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
Cherchez TeamViewer
Regardez la valeur de "QuietUninstallString"

Exemple pour Discord : C:\Users\TommyDDR\AppData\Local\Discord\Update.exe --uninstall -s

Voilà !
Justement j'ai déjà essayer mais il n'y a pas teamViewer dans la base de registre et quand je lance ta commande çà ma lance la désinstallation graphique alors que moi je voudrais juste a avoir a lancer la commande et que ce ce désinstalle out seul, une autre solution ?

Re: Désinstaller un programme silencieusement

Posté : jeu. 30 mai 2019 11:31
par TommyDDR
L'exemple pour discord est bien la désinstallation silencieuse (vous avez bien mis " --uninstall -s" à la fin ?)
Je l'ai essayé suite à votre message et il s'est bien désinstallé (vous me devez une installation de discord !)

Malheureusement je n'ai pas teamviewer mais s'il a été installé de façon classique et qu'il apparait dans "désinstaller un programme" c'est qu'il doit être dans l'une des clés.
il porte peut être un autre nom.. (essayez les {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})
(Python et visual studio code ne portent pas leur noms par exemple)

Edit: Sinon vous allez sur votre moteur de recherche préféré, vous tapez "teamviewer silent uninstall" et le 1er lien vous donnera la solution, désolé d'avoir pensé que vous aviez déjà fait la recherche ! :evil:

Re: Désinstaller un programme silencieusement

Posté : mar. 04 juin 2019 12:02
par Wiltech
Pour ceux qui aurais le problème j'ai trouvé la solution dans powershell ci votre programme contient un uninstall taper le chemin jusqu'au programme puis /S en majuscule le S.

Exemple pour teamviewer :

Code : Tout sélectionner

 C:\'Program Files (x86)'\TeamViewer\uninstall.exe /S
Lancer la commande avec un script autoit :

Code : Tout sélectionner

RunWait("powershell.exe C:\'Program Files (x86)'\TeamViewer\uninstall.exe /S", "", @SW_HIDE)

Re: Désinstaller un programme silencieusement

Posté : mar. 04 juin 2019 13:45
par TommyDDR
Il serait plus propre / lisible de faire :
RunWait('powershell.exe "C:\Program Files (x86)\TeamViewer\uninstall.exe" /S', "", @SW_HIDE)

Re: Désinstaller un programme silencieusement

Posté : mar. 04 juin 2019 13:50
par orax
Mais pourquoi exécuter powershell.exe ?

Code : Tout sélectionner

RunWait("C:\Program Files (x86)\TeamViewer\uninstall.exe /S")

Re: Désinstaller un programme silencieusement  

Posté : mar. 04 juin 2019 14:04
par Tlem
+1 avec orax.

Et même, pourquoi utiliser le RunWait ?
ShellExecute convient aussi.

Code : Tout sélectionner

ShellExecuteWait("C:\Program Files (x86)\TeamViewer\uninstall.exe", "/S", "open", @SW_HIDE)
Après ce code présente l'inconvénient d'utiliser un chemin qui peux être faux !
Même si j'ai bien lu le message #3 de Wiltech dans lequel il dit ne pas avoir de clé de registre concernant Teamviewer, cela n'est pas possible s'il a été installé !
Sans doute a-il oublié de regarder dans WOW6432Node. ^^

Pour une version installée de TeamViewer, voici ce que je recommande :

Code : Tout sélectionner

If @OSArch = "X86" Then
	$InstPath = RegRead("HKLM\SOFTWARE\TeamViewer", "InstallationDirectory")
Else
	$InstPath = RegRead("HKLM\SOFTWARE\WOW6432Node\TeamViewer", "InstallationDirectory")
EndIf
If $InstPath <> "" Then
	ShellExecuteWait($InstPath & "\uninstall.exe", "/S", "open", @SW_HIDE)
Else
	MsgBox(32, "Info", "TeamViewer ne semble pas installé sur ce poste.")
EndIf

Re: Désinstaller un programme silencieusement

Posté : mar. 04 juin 2019 16:45
par Wiltech
Effectivement j'avais trouvé après quelque recherche le chemin dans la base de registre du désinstalleur, je vois que les modérateur et administrateur sont au taquet lol :D Merci pour vos réponse je vais pouvoir optimiser mon code :D
Et il y aurais un moyen de savoir ci la commande à réussie ?

Re: Désinstaller un programme silencieusement

Posté : mar. 04 juin 2019 18:39
par Tlem
Dans la documentation de ShellExecuteWait() regardez dans "Valeur de retour". :P
Cliquez sur le mot ci-dessus pour la traduction.