Simuler touche de clavier en VBS

cs_zatox 79 Messages postés lundi 5 novembre 2007Date d'inscription 24 octobre 2017 Dernière intervention - 19 oct. 2017 à 10:02 - Dernière réponse : cs_zatox 79 Messages postés lundi 5 novembre 2007Date d'inscription 24 octobre 2017 Dernière intervention
- 24 oct. 2017 à 10:26
Bonjour,
j'ai un probleme avec un logiciel sur mon PC, pour faire simple, je dois le réinstaller à chaque démarrage du PC pour qu'il fonctionne correctement.

j'ai donc codé un petit script en VBS pour lancer l'installateur de ce programme automatiquement.

Problème, sur l'installateur (Setup.exe) une fenetre s'ouvre et on me demande de choisir la langue d'installation (par défaut Francais) et de cliquer sur OK la suite se fait automatiquement.

J'ai donc simulé la touche "enter" du clavier dans mon script, mais cela ne semble pas fonctionner.

je n'ai pas de message d'erreur, mais j'ai l'impression que le "enter" ne fonctionne pas. car l'intallateur reste bloqué sur la fenetre avec le bouton "ok".

POur info, le titre de la fenetre du programme est "Choisissez la langue d'installation" et le nom du processus est "Setup Launcher"


j'ai essayé les 2 dans WshShell.AppActivate mais cela ne change rien.

pouvez vous m'aider ? voici mon code

Merci par avance

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )

Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'TWINVIEW.exe'" )

For Each objProcess in colProcessList
objProcess.Terminate()
Next

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Users\HW\Desktop\TVIEW\setup.exe"
WScript.Sleep 5000
WshShell.AppActivate "Setup Launcher"
WScript.Sleep 5000
WshShell.SendKeys "{Enter}"




Afficher la suite 

Votre réponse

5 réponses

VieuxBasic - 19 oct. 2017 à 19:22
0
Merci
Salut Zatox,

As-tu regardé si ton setup pouvait recevoir des arguments?

"Setup.exe /s"
Pour le mode silence.

Sinon, tu peux créer un script : Setup.exe /s /f1"C:\Temp\Setup.iss"

Qui donnera les informations de localisation.

Donc, regarde le type d'install que tu as "MSI"....

Puis, recherche sur ton moteur de recherche pour voir si c'est possible.

Tu n'aura plus de validations externes a faire.
cs_zatox 79 Messages postés lundi 5 novembre 2007Date d'inscription 24 octobre 2017 Dernière intervention - 20 oct. 2017 à 09:27
Bonjour Vieux Basic, je te remercie.

je viens de découvrir le mode silence que je en connaissais pas du tout.

Je ne comprends cependant pas ou tu veux m'emmener avec ton script.

j'ai modifié mon VBS pour passer mon setup.exe en silence, il semble se produire quelque chose, car je vois l'icone du MSI dans la barre des taches (mais aucune fenetre n'apparait à l'écran, ni meme lorsque je clique sur l'icone dans la barre des taches.

l'icone disparait ensuite d'elle meme mais je ne sais pas si quelque chose s'est produit..
cs_zatox 79 Messages postés lundi 5 novembre 2007Date d'inscription 24 octobre 2017 Dernière intervention - 20 oct. 2017 à 09:34
PS: le fichier généré dans TEMP comporte ceci:

[ResponseResult]
ResultCode=-3
Commenter la réponse de VieuxBasic
VieuxBasic - 24 oct. 2017 à 03:35
0
Merci
Salut Zatox,
dans ton code :

WshShell.AppActivate "Setup Launcher"
WScript.Sleep 5000
WshShell.SendKeys "{Enter}"


Donc, to dirige to focus vers l'application...
Mais, as-tu le focus sur le bon bouton?

Essai de taper {tab} pour sélectionner le bouton, et non la "form" par défaut!

MSI "ResultCode=-3" sur un moteur de recherche...
c'est plus rapide qu'une explication maladroite...
cs_zatox 79 Messages postés lundi 5 novembre 2007Date d'inscription 24 octobre 2017 Dernière intervention - 24 oct. 2017 à 10:26
Bonjour, et merci pour ta réponse, oui , j'ai essayé avec TAB également , qui ne semble pas non plus fonctionner d'ailleurs, mais par défaut le focus est bien sur le bon bouton.

De ce que je comprends, le résultat -3 indique qu'il manque quelque chose ou que l'installation s'est mal passée ??

Quoi qu'il en soit je ne sais pas comment interpreter ce résultat et corriger l'erreur.
Commenter la réponse de VieuxBasic

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.