Lancer une désinstalle à partir de la ligne de commande ? - Win NT/2K/XP - Windows & Software
Marsh Posté le 26-03-2003 à 01:48:22
Tu prends ton regedit préféré, tu vas dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, tu trouves la clé correspondant à ton soft et tu récupères la ligne de commande associée.
Marsh Posté le 26-03-2003 à 10:07:28
Bien joué, merci !
Cependant il manque un détail pour que ce soit parfait...
J'ai trouvé la clé correspondante et je suppose que la ligne de commande que je cherche est celle de la variable "UninstallString".
Cette ligne est du type "MsiExec.exe /I{14A...081}" et donc commence par lancer le Windows Installer 2 (je suis sous XP Pro SP-1), puis arrive sur sur un écran "Wise Installation Wizard" de l'installeur du Runtime qui demande confirmation pour modifier, réparer ou supprimer l'install.
Or il doit exister un paramètre à placer dans la ligne de commande pour ne pas passer par cet écran et commencer immédiatement la désinstallation du logiciel puisque quand on clique sur le bouton "Supprimer" de l'écran "Ajout/Suppression de programme" on y va directement.
Tu sais comment faire lancer la désinstalle directement ?
Merci d'avance
P.S. : Ensuite il me restera à voir s'il y a des différences de 95 à XP parce qu'il faudra bien que je puisse toujours récupérer cette ligne de commande quelque soit l'OS de manière automatisés
Marsh Posté le 26-03-2003 à 10:10:05
http://forum.hardware.fr/forum2.php3?post=34176&cat=10
ça vallait le coup que je répondre
bon bhen je boude
les topics multiples c'est mal
Marsh Posté le 26-03-2003 à 10:13:37
Arf... j'étais pile poil en train de te répondre pour te remercier côté prog quand t'as fermé le topic avant que je valide mon post
Dsl pour le double topic, mais je savais pas bien où poser au mieux ma question
En tout cas faut pas bouder pour ça...
Quelqu'un a une idée pour le paramétre ?
Marsh Posté le 26-03-2003 à 10:27:30
Apparement pour forcer le choix de la désinstalle il faut remplacer /I par /x. Dans ce cas il reste une demande de confirmation oui/non sans mention du nom du logiciel à désinstaller
http://msdn.microsoft.com/library/ [...] ptions.asp
Par contre, comment ça va se passer sur les autres Windows car si XP a Windows Installer 2.0, Me et 2000 ont des versions 1.x et tous les autres Windows n'ont pas Windows Installer ?
On trouvera une chaine différente mais au même endroit dans la base de registre ?
Marsh Posté le 26-03-2003 à 10:39:39
Ceux qui n'ont pas Windows Installer n'auront pas su installer le logiciel à priori...
Marsh Posté le 26-03-2003 à 10:46:17
Hein ?
Sur Windows 95/98 et NT il y a pas Windows Installer et pourtant ce runtime s'installe sur ces OS. Il doit y avoir un autre système...
"What versions of Windows include Windows Installer?
Microsoft Windows 2000, Windows Millennium Edition (Windows Me), and Windows XP include Windows Installer. Windows 2000 includes version 1.1 of Windows Installer, Windows Me includes version 1.2, and Windows XP includes version 2.0. Windows 2000 SP3 also contains version 2.0 of Windows Installer."
http://www.microsoft.com/windows20 [...] si_faq.asp
Faudrait que je fasse des tests mais si je pose la question ici c'est que j'ai aucun de ces 3 OS sous la main
P.S. : En tout cas il y a un 1er truc de sûr c'est que les clés ne sont pas modifiées à chaque install sur un même PC. Reste à voir si elle sont modifiées par une install sur un autre Pc avec le même OS, et/ou sur un autre PC avec un Os différent
Marsh Posté le 26-03-2003 à 11:18:16
Ouais enfin il y a moyen d'installer MSInstaller sur les vieux systèmes
Marsh Posté le 26-03-2003 à 11:24:04
antp a écrit : Ouais enfin il y a moyen d'installer MSInstaller sur les vieux systèmes |
Arg... y veut ma mort
Déjà que je me fais chier avec l'install/désinstall de 2 softs par le même installeur, s'il faut qu'il gère l'install d'un 3ème qui devra prendre en compte l'install des 2 autres
Nan, il doit juste y avoir des commandes différentes, faut les trouver
C'est aussi pour ça qu'il faut que je vérifie si les clés changent et/ou sont toujours au même endroit dans la base de registre.
Si elles ne changent pas je retrouverai la bonne chaine dans tous les cas
Vait faire tout de suite un 1er test avec 2000. Il a Windows Installer mais je saurai si sur un PC et un OS différent la clé change
Marsh Posté le 26-03-2003 à 12:05:53
Bonne nouvelle !
Sur un autre PC sur Windows 2000 la clé reste la même (et la ligne de commande aussi mais c'est normal Windows 2000 a Windows Installer).
Maintenant faudrait faire un essai sur 95/98 (NT 4 c'est pas bien grave)
Marsh Posté le 26-03-2003 à 15:37:38
Bon, pour l'instant ça marche bien sur XP et 2000
Je vais vérifier sur 95/98 mais j'ai aussi 2 détails à régler, alors si vous avez des idées...
1/ Pour les spécialistes de Windows Installer
Dans la base de registre on peut retrouver la clé permettant de lancer la commande de désinstallation du runtime (merci Nico et antp ).
Cette commande "MsiExec.exe /x{14A...081}" aboutit à la boite de dialogue de confirmation de suppression. C'est normal, mais contrairement à la même boite de dialogue de confirmation quand on passe par "Ajout/Suppression de programme" elle ne mentionne pas le nom du logiciel quelle va désinstaller (le runtime).
Or cette boite de dialogue permet de laisser le choix de le désinstaller ou pas (en même temps que mon appli), mais à condition de l'annoncer.
Quelqu'un sait-il comment compléter cette ligne de commande pour que la boîte annonce le nom du programme qui va être désinstallé ?
2/ Pour les spécialistes d'Inno Setup !
Inno Setup réalise donc la désinstallation de mon appli mais au début il doit commencer par lancer la désinstallation du runtime.
Or, il n'y arrive pas. J'ai le message d'erreur suivant : "Impossible d'ouvrir ce package d'installation. Vérifiez qu'il existe et que vous êtes autorisé à y accéder, ou vérifiez auprès de votre revendeur d'applicaztions que ce package de Windows Installer est valide"
Du coup j'ai créé un .bat que lance Inno et qui lui lance la désinstall du runtime ; et là ça marche. C'est pas propre mais ça marche.
Quelqu'un sait pourquoi Inno n'arrive pas à lancer lui la désinstall du runtime ?
Merci d'avance
Marsh Posté le 26-03-2003 à 15:41:13
-ET- a écrit : |
Tu as mis quoi dans le script d'innosetup pour lancer ça ?
Marsh Posté le 26-03-2003 à 15:48:03
Dans...
[UninstallRun]
Filename: "MsiExec.exe"; Parameters: "/x{{14A...081}}"
Le double { est normal, sinon Inno prend la clé pour une variable.
Alors que ça marche avec...
Filename: "{app}\batch\UninstRT.bat"; Flags: runminimized
qui lance le batch UninstRT.bat dans lequel il y a : MsiExec.exe /x{14A...081}
La même chose !
Marsh Posté le 26-03-2003 à 15:58:28
Le msg est "Impossible d'ouvrir ce package d'installation. Vérifiez qu'il existe et que vous êtes autorisé à y accéder, ou vérifiez auprès de votre revendeur d'applicaztions que ce package de Windows Installer est valide"
Mais au même moment (pendant que ce msg d'erreur reste affiché) si je lance la commande en manuel ou par le batch ça passe.
Et en automatique, si je paramètre la ligne du batch tout passe sans pb aussi
Marsh Posté le 26-03-2003 à 18:21:54
Bon, j'ai trouvé l'explication pour le point 1 mais le résultat n'est pas terrible à cause de la mauvaise réalisation de l'installeur du runtime Paradox
En fait, la boîte de dialogue de confirmation d'Ajout/Supression de programme est propre à cet utilitaire (et ne provient pas du Windows Installer).
Ensuite, une fois confirmé le Windows Installer se lance sans nouvelle demande de confirmation.
En revanche, si on veut passer par un écran de confirmation après le lancement du Windows Installer il faut utiliser la commande "/qf".
Donc "MsiExec.exe /x{14A...081} /qf"
http://msdn.microsoft.com/library/ [...] ptions.asp
Malheureusement, comme les programmeurs de Corel ont choisi de ne pas utiliser cette possibilité par défaut (quand on désinstalle le runtime par "Ajout/Supression de programme" celà se fait sans nouvelle confirmation), ils n'ont pas pris la peine de personnaliser correctement cet écran de confirmation. Du coup, on arrive sur un écran pas très clair qui laisse à penser qu'on fait juste une mise à jour, puis sur un écran d'avancement qui laisse lui à penser qu'on installe au contraire le runtime (alors qu'on le désinstalle bien) :-(
Du coup à mon avis ça va être plus perturbateur qu'autre chose. Tant pis
--------------
En revanche, le pt 2 reste en suspend
Mais je pense que je vais ouvrir un topic spécifique Inno car dans la foulée j'aimerai savoir si ne on peut pas demander avant le lancement de la désinstallation du runtime un boîte de dialogue de confirmation depuis Inno (pour faire la même chose que ce que fait Ajout/Supression de programme)
--------------
Enfin, côté désinstallation en ligne de commande il me reste quand même à savoir ce qui se passe sous 95/98 puisqu'il n'y a pas de Windows Installer
Si quelqu'un a une idée sur ce tout dernier point, je suis preneur
Marsh Posté le 26-03-2003 à 22:37:21
Là t'abuse antp
On ne parle plus de Windows mais d'un logiciel : Inno Setup sur 2 questions qui lui sont spécifiques !
A vouloir tout mélanger dans un seul topic on ne risque pas d'avoir des réponses.
Un mec qui connait Inno et qui voit un topic avec sujet et 10ers posts sur les lignes de commande Windows et Windows Installeur n'ouvrira même pas le topic, et même s'il l'ouvre en repartira rapidement.
Sans compter que la catégorie devient hors sujet !
J'avais peut être tord la 1ère fois mais là c'est nul comme modération
Entre les insultes et les modérations de ce genre, il devait y avoir un an que j'étais pas revenu par ici mais je crois que je vais en repartir aussi vite que je suis venu. Le newsgroup Inno sera certainement nettement plus efficace.
Enfin... ça t'occupe...
Marsh Posté le 26-03-2003 à 22:46:57
suffit que t'édites ton titre alors
puis dans le nouveau topic j'ai mis un lien vers celui-ci
bon je rouvre l'autre puisque ça semble te tenir tellement à coeur
http://forum.hardware.fr/forum2.ph [...] e=&config=
Marsh Posté le 27-03-2003 à 16:22:23
Et voilà le résultat des courses pour ceux que ça aurait pu interresser...
L'emplacement de la ligne de commande permettant la désinstallation est toujours au même endroit sous tous les Windows :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Clé propre au logiciel\UninstallString\
Et la ligne de commande elle même ne varie pas non plus quelque soit la version de Windows.
Même dans le cas d'un OS n'ayant pas Windows Installer et d'un logiciel dont l'installation est gérée par cet utilitaire, l'installeur installe Windows Installer 1.10, ou au moins les outils de désinstallation.
Enfin, dans le cas d'une installation gérée par Windows Installer, les options de ligne de commande pour paramétrer la désinstallation sont présentées ici...
http://msdn.microsoft.com/library/ [...] ptions.asp
Grosso modo on a droit à "msiexec.exe /x<nom du fichier ou clé> [/q[n|b|r|f]]"
Voilà qui clôt les questions de ce topic concernant Windows et Windows Installer.
Marsh Posté le 26-03-2003 à 01:02:04
Voilà, j'ai une appli que je fais installer via Inno Setup, et dans la foulée il installe aussi un runtime Paradox 10.
Mais, à la désinstallation sous Windows de l'appli il faut que le runtime soit désinstallé en 1er (avant l'appli). Inno sait lancer des commandes avant la désinstallation de l'appli mais du coup je cherche comment lancer la désinstallation d'un soft sous Windows par une ligne de commande ?
En gros c'est faire "Panneau de configuration", "Ajout/Suppression de programme" et supprimer tel soft, mais au lieu de tout faire en manuel par des clics je cherche une syntaxe en ligne de commande pour lancer la désinstall par le prog ?
Des idées ?
P.S. : Evidement le runtime n'a pas de .exe dédié à la désinstall sinon ça serait trop simple