Page 1 sur 1
[R] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 10:07
par BeCool
Bonjour a tous.
Dans le cadre de mon travail, je dois créer un script qui installe automatiquement UltraVNC (déjà créer
ICI).
Maintenant je bloque sur quelque chose que mon supérieur m'a demander, c'est de rajouter au début du script, des lignes qui ferraient en sorte que le programme vérifie s'il y a déjà une version de VNC d'installer et si elle est déjà installer, la supprimer et installer la nouvelle version.
En fait, il faut juste que je rajoute quelques petites lignes au début de mon script, Mais je n'ai aucunes idée de comment je pourrais faire ...
Je pense qu'il faut faire appel a la fonction If et ensuite ?
Edit : Ajout du lien du script d'installation de Ultra VNC pour exemple.
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 10:43
par Tlem
Pour la désinstallation d'une application, il peut y avoir deux possibilités :
- L'utilisation du programme de désinstallation du répertoire du programme.
- La suppression des clés de la base de registre et la suppression des fichiers du programme créés lors de l'installation.
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 10:52
par BeCool
Justement, j'ai déjà pensé a aller voir dans %systemdrive%\Progra~1\UltraV~1\ , mais il n'y a pas de fichier "uninstall" ou fichier similaire...
Puis pour ce qui est des clé de base de registre, j'y avais déjà aussi pensé, mais pas trop envie de toucher a ça car je ne connais pas encore bien ce qu'il y a là bas dedans. Puis sachant que ce sont des ordinateurs du boulot, j'ai pas trop envie de faire de conneries. Encore ce serrait chez moi, je dirais pas, mais là ...
Edit : Je viens de trouver le fichier de désinstallation de UltraVNC, je le voyais pas parce qu'il n'avait pas un nom "normale"...
Maintenant, reste a savoir si une version de UltraVNC peut être installée s'il y a déjà un RealVNC ou autre suite de VNC déjà installer préalablement sur le PC. Et si non, comment trouver les dossiers de suite de VNC et les désinstaller (s'ils existent)
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 11:20
par Tlem
Si vous faites une installation de UltraVnc par dessus une autre, est-ce que il vous propose de désinstaller l'ancienne version ?
Si la réponse est non, alors pas de problème. A chaque installation vous mettez à jour donc aucune inquiétude.
Pour ce qui est de la base de registre, pas de problème. Si vous demandez conseil on vous dira si il y à un risque ou non.

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 12:00
par BeCool
J'ai essayé d'installer 2 fois UltraVNC avec le même script. Le problème est qu'il me fait "planter" l'installation car il ouvre une fenêtre qu'il n'y a pas quand on l'installe qu'une fois...
Je viens d'écrire un script qui désinstalle VNC:
► Afficher le texte
Code : Tout sélectionner
run ("C:\Program Files\UltraVNC\unins000.exe")
If not WinActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?") Then WinActivate ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
WinWaitActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
Send ("{LEFT}")
Send ("{ENTER}")
If not WinActive ("WinVNC","Le service Ultr@VNC a été libéré") Then WinActivate ("WinVNC","Le service Ultr@VNC a été libéré")
WinWaitActive("WinVNC","Le service Ultr@VNC a été libéré")
Send ("{ENTER}")
If Not WinActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.") Then WinActivate ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
WinWaitActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
Send ("{ENTER}")
Maintenant, il faut que je trouve comment dire au programme "Si ultraVNC est installer, alors désinstalle-le (et le code ci-dessus qui suit), sinon, installe le (et le code d'installation qui suit)"
Je vais bien me prendre la tête

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 13:19
par Tlem
Chez moi, ceci :
Code : Tout sélectionner
C:\temp\UltraVNC-102-Setup-Fr.exe /loadinf="c:\temp\Silent.inf" /silent
installe UltraVnc avec la fenêtre de progresssion.
et ceci :
Code : Tout sélectionner
C:\temp\UltraVNC-102-Setup-Fr.exe /loadinf="c:\temp\Silent.inf" /verysilent
installe UltraVnc de manière totalement transparente.
Si vous avez enregistré UltraVnc en tant que service, il peut être utile de faire un
avant de le ré-installer.
[Edit] : Voici un code AutoIt pour désinstaller UltraVnc.
Code : Tout sélectionner
; Arrêt du servive WinVnc (Au cas ou)
Run(@ComSpec & " /c " & 'Net Stop winvnc', "", @SW_HIDE)
; Désinstallation UltraVnc.
If FileExists(@ProgramFilesDir & "\UltraVNC\unins000.exe") Then
ShellExecuteWait(@ProgramFilesDir & "\UltraVNC\unins000.exe", "/silent") ; Utiliser /verysilent pour tout masquer.
EndIf
; Suppression du répertoire UltraVNC et des clés de la base de registre.
DirRemove(@ProgramFilesDir & "\UltraVNC", 1)
RegDelete("HKEY_CLASSES_ROOT\.vnc")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.vnc")
RegDelete("HKEY_CLASSES_ROOT\VncViewer.Config")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VncViewer.Config")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\ORL")
RegDelete("HKEY_CURRENT_USER\SOFTWARE\ORL")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\UltraVnc")
RegDelete("HKEY_CURRENT_USER\SOFTWARE\UltraVnc")
Il reste encore le driver vidéo UltraVnc mais c'est déjà un bon début.
Pour récupérer des infos sur l'installation de UltraVnc, vous pourriez regarder dans cette clé de la base de registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A8AD990E-355A-4413-8647-A9B168978423}_is1Peut être que sur d'autres PC l'ID
{A8AD990E-355A-4413-8647-A9B168978423}_is1 ne sera pas identique.
Dans ce cas il faudra énuméré toutes les clés de
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ à la recherche d'une sous clé.

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 16:06
par BeCool
C'est bon pour la désinstallation, j'ai fais plus simple et ça marche (je viens de voir votre réponse, sinon, j'aurais pris votre solution avant de chercher pourquoi mon script de désinstallation ne marchait pas^^)
► Afficher le texte
Code : Tout sélectionner
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then Exit
FileExists ("C:\Program Files\UltraVNC\unins000.exe")
run ("C:\Program Files\UltraVNC\unins000.exe")
If not WinActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?") Then WinActivate ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
WinWaitActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
Send ("{LEFT}")
Send ("{ENTER}")
If not WinActive ("WinVNC","Le service Ultr@VNC a été libéré") Then WinActivate ("WinVNC","Le service Ultr@VNC a été libéré")
WinWaitActive("WinVNC","Le service Ultr@VNC a été libéré")
Send ("{ENTER}")
If Not WinActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.") Then WinActivate ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
WinWaitActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
Send ("{ENTER}")
Maintenant, pour combiné les scripts de désinstallation avec celui d'installation, c'est pas la même chose. C'est les conditions, et là, rien ne va

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 16:23
par Tlem
Je vous conseil quand même ma méthode, car plus complète et non soumise à l'interface graphique qui peut être perturbée pour un oui ou un non ...
Pour l'installation automatique, j'ai une solution plus simple et non soumise à l'interface graphique, voir totalement silencieuse (comme la désinstallation avec le commutateur /verysilent).
Je la post dans l'autre sujet.

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 16:32
par BeCool
Pour ce qui est de l'installation ou de la désinstallation, aucuns problème par rapport a ce que vous citez. Je ne l'ai pas mis dans mes scripts, mais je fais un petit BlockInput (1) au début et un BlockInput (0) a la fin du script, pour justement éviter que les utilisateurs nous appel en nous disant "nianiania ça marche pas, ça me met des erreurs a l'écran".
Dans quel poste je met la suite de mon script (qui combien l'instal et la désinstal du VNC) ?
Je le met ici (car j'ai vraiment un soucis avec les conditions alors que je ne vois pas d'où viens le problème. Et si besoin, je supprimerais/déplacerais le script de post.
/!\ code assez long
► Afficher le texte
Code : Tout sélectionner
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then Run("\\srv-data\COMMUN\Info\UltraVNC102.exe") ;Lance UltraVNC102
WinWaitActive("Langue de l'assistant d'installation") ;Attend que la fenêtre "Langue de l'assistant d'installation" s'ouvre et soit active
Send("{ENTER}")
WinActivate("Installation - UltraVNC")
Send("{ENTER}")
If Not WinActive("Installation - UltraVNC","Je comprends et j'&accepte les termes du contrat de licence") Then WinActivate("Installation UltraVNC","Je comprends et j'&accepte les termes du contrat de licence")
WinWaitActive("Installation - UltraVNC","Je comprends et j'&accepte les termes du contrat de licence")
Send("{TAB}") ;accepte les conditions de la licence
Send("{UP}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{TAB}")
Send("{SPACE}")
Send("{SPACE}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{ENTER}")
Send("{SPACE}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
WinWaitActive("Erreur Ultr@VNC")
Send("{ENTER}")
WinWaitActive("Ultr@VNC: Paramètres par Défaut du Systèm")
Send("********") ;mot de passe pour entrer dans la session
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{LEFT}")
Send("****") ;port VNC
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{DOWN}")
Send("{SPACE}")
Send("{DOWN}")
Send("{ENTER}")
Send("{TAB}")
Send("{ENTER}")
Send("****")
Send("{TAB}")
Send("{ENTER}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{ENTER}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{LEFT}")
Send("{LEFT}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{LEFT}")
send("{ENTER}")
WinWaitActive("Installation - UltraVNC")
send("{ENTER}")
send("{ENTER}")
Else
run ("C:\Program Files\UltraVNC\unins000.exe")
If not WinActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?") Then WinActivate ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
WinWaitActive ("Désinstallation - UltraVNC","Voulez-vous vraiment désinstaller complètement UltraVNC ainsi que tous ses composants ?")
Send ("{LEFT}")
Send ("{ENTER}")
If not WinActive ("WinVNC","Le service Ultr@VNC a été libéré") Then WinActivate ("WinVNC","Le service Ultr@VNC a été libéré")
WinWaitActive("WinVNC","Le service Ultr@VNC a été libéré")
Send ("{ENTER}")
If Not WinActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.") Then WinActivate ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
WinWaitActive ("Désinstallation - UltraVNC","UltraVNC a été correctement désinstallé de cet ordinateur.")
Send ("{ENTER}")
Run("\\srv-data\COMMUN\Info\UltraVNC102.exe") ;Lance UltraVNC102
WinWaitActive("Langue de l'assistant d'installation") ;Attend que la fenêtre "Langue de l'assistant d'installation" s'ouvre et soit active
Send("{ENTER}")
WinActivate("Installation - UltraVNC")
Send("{ENTER}")
If Not WinActive("Installation - UltraVNC","Je comprends et j'&accepte les termes du contrat de licence") Then WinActivate("Installation UltraVNC","Je comprends et j'&accepte les termes du contrat de licence")
WinWaitActive("Installation - UltraVNC","Je comprends et j'&accepte les termes du contrat de licence")
Send("{TAB}") ;accepte les conditions de la licence
Send("{UP}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{TAB}")
Send("{SPACE}")
Send("{SPACE}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{ENTER}")
Send("{SPACE}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
WinWaitActive("Erreur Ultr@VNC")
Send("{ENTER}")
WinWaitActive("Ultr@VNC: Paramètres par Défaut du Systèm")
Send("***********") ;mot de passe pour entrer dans la session
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{LEFT}")
Send("****") ;port VNC
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{SPACE}")
Send("{DOWN}")
Send("{SPACE}")
Send("{DOWN}")
Send("{ENTER}")
Send("{TAB}")
Send("{ENTER}")
Send("****")
Send("{TAB}")
Send("{ENTER}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{ENTER}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{LEFT}")
Send("{LEFT}")
Send("{ENTER}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Send("{LEFT}")
send("{ENTER}")
WinWaitActive("Installation - UltraVNC")
send("{ENTER}")
send("{ENTER}")
EndIf
Exit
Il me dit qu'il y a une erreur au niveau du Else ...
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 17:11
par Tlem
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 17:15
par BeCool
Ui, je l'avais déjà vu. Merci quand même. Mais marche pas quand même....
Avez-vous regarder le dernier script ? Si non, regardez le, c'est là même structure :
If ..... Then
Else (/!\ Error

)
EndIf
Mais ça marche pas ...
Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 17:28
par Tlem
Si je résume votre code à sa plus simple expression, voici ce que ca donne :
Code : Tout sélectionner
; Votre premier bloc d'instruction.
Exit
Else
; Votre deuxième bloc d'instruction.
EndIf
Exit
Comme vous pouvez le constater, vous ne respectez pas le modèle de la commande
IF.

Re: [..] Auto-désinstallation d'un programme.
Posté : lun. 03 nov. 2008 17:32
par BeCool
Ha bah alors là ....
Va falloir que je trouve des tuto là parce que soit on voit pas pareil, soit je suis presque aveugle ^^
Je regarderais ça demain... Un peu de repos me ferra surement du bien
Ça me parait bizarre quand même.
Merci de votre aide en tout cas !
Edit: Ayé ! J'ai trouvé, c'était tout con ... Fallait juste mettre
Code : Tout sélectionner
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then Run("\\srv-data\COMMUN\Info\UltraVNC102.exe") ;Lance UltraVNC102
Au début au lieu de
Code : Tout sélectionner
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then Run("\\srv-data\COMMUN\Info\UltraVNC102.exe") ;Lance UltraVNC102
Et enlever le "Exit" qui se trouvait au milieu du script, juste avant le "Else".
Par contre, pas compris pourquoi il fallait mettre 2 fois
Code : Tout sélectionner
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then
If Not FileExists ("C:\Program Files\UltraVNC\unins000.exe") Then
...
Si quelqu'un pouvait m'expliquer ?
Pour voir le script final, regarder quelques postes au dessus, j'ai mis a jour le script.