Page 1 sur 1

[..] Installation d'un logiciel automatisé... (Lotus)

Posté : mar. 22 sept. 2009 12:30
par tipiaks
Bonjour,

Je possède un parc de 200 machines, j'aimerais automatiser l'installation d'un fixpack de lotus qui correspond à un service pack d'un Windows par exemple.
Mon script fonctionne bien (je débute... il est ultra simpliste...) mais je ne connais pas la fonction qui me permet d'attendre qu'une action soit réaliser pour lancer l'action suivante. Je m'explique avant d'envoyer par exemple un "!f" je voudrais attendre que l'action en cours soit terminer dans mon cas l'installation du programme...

Voici mon script :

Code : Tout sélectionner

run("\\serveur01\fichiers\lotus\setup.exe")
winwaitactive("IBM Lotus Notes 8.5 FP1 - InstallShield Wizard")
sleep(2000)
Send("{Enter}")
sleep(1000)
Send("!a") 
Send("{Enter}")
sleep(1000)
Send("{Enter}")
sleep(1000)
Send("{Enter}")
winwaitactive("IBM Lotus Notes 8.5 FP1 - InstallShield Wizard")
Send("!f")
 
Et je voudrais donc attendre que l'installation soit terminer avant d'envoyer le !f à la fin pour fermer la fenêtre du programme...

Merci de votre aide.

Re: Installation d'un logiciel automatisé... (Lotu

Posté : mar. 22 sept. 2009 15:34
par jbnh
Bienvenu sur le forum !

Avant que nous puissions vous répondre, vous devriez lire les règles de présentation des messages ainsi que les règles générales du forum puis éditez votre premier message pour ajouter les balises [..] au titre de votre sujet.

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mar. 22 sept. 2009 16:03
par tipiaks
Message re-éditer :)

Si vous avez une idée pour ma question se serais très sympa.

Edit : Je précise que je ne peux pas utiliser la fonction "sleep" car le temps d'installation varie d'un poste à un autre.

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mar. 22 sept. 2009 17:33
par tipiaks
J'essaye de continuer un peu mon analyse...

Serais t'il possible de résoudre mon problème en faisant une sorte de boucle comme celle-là :

Code : Tout sélectionner

While Not BitAnd(Wingetstate("Finish"),15)
    Sleep(100)
WEnd
 
Mais en indiquant que c'est lorsque le "bouton 1" (renseignement obtenu grâce à Autoit v3 Windows info) affiche finish qu'il faut lancer le "send" ?


Merci pour votre future aide.

Re: [..] Installation d'un logiciel automatisé...

Posté : mar. 22 sept. 2009 18:35
par jbnh
Bonjour,

Vous pouvez toujours checker en boucle si votre fenêtre existe avec WinExist. Des qu'elle n'existe plus -> vous faies votre send.

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mar. 22 sept. 2009 23:26
par Tlem
Et plus simplement, est-ce que ce fixpack n'aurait pas un commutateur d'installation silencieuse ???
Généralement c'est le cas donc c'est sans doute votre solution.

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mer. 23 sept. 2009 08:57
par tipiaks
Le problème de cette installation silencieuse c'est que l'utilisateur ne verra pas la fin de l'installation et s'il lance le logiciel "lotus" entre temps sa fera complètement planter le PC.

C'est pour sa qu'une installation automatique avec les fenêtres me convient très bien.

Je vais tester le "Winexist".

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mer. 23 sept. 2009 11:36
par tipiaks
Comment formuler ma boucle pour dire que tant que le "bouton 1" n'affiche pas "finish" il ne faut pas quitter cette boucle et exécuter l'action suivante ?


Une idée s'il vous plait?

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mer. 23 sept. 2009 12:11
par Iste
tipiaks a écrit :Le problème de cette installation silencieuse c'est que l'utilisateur ne verra pas la fin de l'installation et s'il lance le logiciel "lotus" entre temps sa fera complètement planter le PC.
Baaaah, runwait() ou shellexecutewait() et pendant ce temps tu met une fenetre a l'ecran 'installation en cours, merci de patienter', pas bon ?
sinon, tu as essayé ControlGetText() ?

Re: [..] Installation d'un logiciel automatisé... (Lotus)

Posté : mer. 23 sept. 2009 15:33
par tipiaks
Je débute et je n'arrive pas a comprendre le mécanisme des commandes.

Je voudrais juste à la fin de mon code que la commande "Send("!f")" se lance après que mon logiciel soit finit d'installer. Il se termine quand le bouton "finish" apparait. Le temps d'installation variant d'un poste à un autre il m'es impossible d'utiliser le "sleep".

Pouvez-vous me donner un exemple de script s'il vous plait ?

2ème Question Grâce à "runas" mon script s'exécutera bien en administrateur (dans mon exemple)?

Code : Tout sélectionner

runas("administrateur","********","***********","","")
run("\\serveur01\fichiers\lotus\setup.exe")
winwaitactive("IBM Lotus Notes 8.5 FP1 - InstallShield Wizard")
sleep(2000)
Send("{Enter}")
sleep(1000)
Send("!a") 
Send("{Enter}")
sleep(1000)
Send("{Enter}")
sleep(1000)
Send("{Enter}")
While Not BitAnd(WinExists("Finish"),15)
    Sleep(100)
WEnd
Send("!f")