Suppression d'un programme

Résolu
Signaler
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
-
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
-
Bonjour a tous,
Actuellement en stage, je bloque sur un probleme. Je suis censer developper un utilitaire de maj pour un programme vba. La maj devrait se faire en desinstallant le prog et en reinstaller la version superieur. Mais je ne trouve pas d'autre moyen que de passer par Ajout/Suppression de programme. Ce qui est plutot embatant car j'aurai besoin d'une automatisation.
Merci d'avance

6 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Je sais pas ce qu'est un utillitaire de maj...

Pour désinstaller, dans ajout et suppressin de programme, ce qui ce passe c'est que windows lit les clés de :
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\

Pour savoir quels sont les programmes insallés, et quan on demande l'installation, il execute le plus simplement la donnée de la valeur UninstallString de la clé :

HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\NomDeLAppli

Parfois, nom de l'appli est pas forceément très explicite...

L'execution coonsiste généralement en une simple execution de fichier avec argument.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
1
Merci rt15,
Un utilitaire de maj c'est comme windows update par exemple, cad ca verifie les numéro de version ou autre chose et fait les mise a jour si besoin.
par contre question. Comment grace a cet clé de registre peut on lancé l'uninstall ?
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
En executant la chaîne de caractère située dans la valeur UninstallString.

Pour savoir comment récupérer la chaîne, il faut que tu trouves la clé manuellement (regedt32 si mes souvenirs sont bon).

Une fois que tu as son chemin, tu pourras lire la chaîne en t'inspirant d'un des nombreux source sur ce site (Commande rechercher située plus haut).

Puis tu balance la chaîne à une fonction d'execution.

En vb6, la fonction d'execution s'appelle shell(). (Sinon, API ShellExecute).
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
1
Bon j'ai un autre souci.
Tout d'abord voici mon code :

Sub suppr()
Dim key As String
Dim objWshShell As Object
Dim keyname As String


key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{98FE62B1-F0D4-40C3-8E08-12EA266A2572}\UninstallString"
Set objWshShell = CreateObject("Wscript.Shell")
keyname = objWshShell.RegRead(key)
objWshShell
Set objWshShell = Nothing
Shell (keyname)
End Sub


Lorsque je fait mon shell(keyname) il me lance bien la valeur compris dans l'uninstallstring, sauf que ca ne me donne pas le meme resultat. En effet ca me fait comme si je relancé le setup.exe d'ou un choix entre reparer supprimer etc. Or lorsqu'on passe par Ajout/Suppression de programme, il lance direct la desinstall. J'avoue ne pas comprendre.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Quelle chaîne se trouve dans l'UninstallString ?

C'est peut être un problème de guillemets.
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
19 février 2012
1
c bon me suis debrouiller autrement. merci kan mm