Suppression d'un programme

Résolu
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 - 6 févr. 2006 à 13:58
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 - 8 févr. 2006 à 13:18
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 févr. 2006 à 15:42
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
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 1
6 févr. 2006 à 16:27
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 ?
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 févr. 2006 à 17:45
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).
0
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 1
7 févr. 2006 à 14:10
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
8 févr. 2006 à 10:07
Quelle chaîne se trouve dans l'UninstallString ?

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