Page 1 sur 1

[R] Détecter une fenêtre active

Posté : mer. 06 août 2008 23:52
par zouzou
Bonjour,
je me suis mit à autoit et je suis en train de créer un script permettant d'installer firefox 3 en mode silencieux.

Mon début de script ressemble à ça:

Code : Tout sélectionner

; active mode debug
Opt("TrayIconDebug", 1)
; ?
Opt("WinTitleMatchMode", 3)
Run("firefox Setup 3.0.exe")
; desactive clavier et souris
BlockInput(1)

;1
WinWaitActive("Fichier ouvert - Avertissement de sécurité")
Send("")
ControlClick("Fichier ouvert - Avertissement de sécurité","Exécuter")

;2
WinWaitActive("Installation de Mozilla Firefox")
Send("S")
Ca fonctionne bien jusqu'au paragraphe 2 ou là ça reste bloqué sur la fenetre windows "Installation de Mozilla Firefox"
comme si celle ci n'était pas active, du coup ça va pas plus loin.

Voilà si quelqu'un pouvait m'éclairer.
Merci d'avance

Re: [..] Détecté une fenêtre active

Posté : jeu. 07 août 2008 05:21
par SagePourpre
C'est simple, la deuxième fenêtre, c'est l'accord de licence.

donc, il faut que tu fasse un

Code : Tout sélectionner

Send("!A")


pour accepter la licence.

Re: [..] Détecté une fenêtre active

Posté : jeu. 07 août 2008 13:00
par zouzou
hello sagepourpre

merci pour ta réponse

en fait la seconde fenêtre qui s'ouvre n'est pas l'accord de license: c'est la fenêtre de début d'install ou il faut juste cliquer sur "suivant"

la fenêtre d'accord de license vient aprés

j'ai l'impression qu'autoit ne me détecte pas ma fenêtre active

Re: [..] Détecté une fenêtre active

Posté : jeu. 07 août 2008 14:10
par SagePourpre
ah....
Voilà mon installation de Firefox 3

Code : Tout sélectionner

#include <perso.au3>


Run("M:\Backup\ Installations\Internet\Firefox\Firefox Setup 3.0.1.exe")
WA("Installation de Mozilla Firefox|Bienvenue|!s")
WA("Installation de Mozilla Firefox|Accord de licence|!a|!s")
WA("Installation de Mozilla Firefox|options|!s")
WA("Installation de Mozilla Firefox|Résumé|!I")
WA("Installation de Mozilla Firefox|fermer cet|!L|!t")
FileCopy("Profiles.ini",@AppDataDir & "\Mozilla\Firefox",1)

En gros, j'utilise une fonction de ma création que je t'ai incluse au cas ou mais
sinon ...

Tu peux utiliser les infos (chaque éléments est séparé par "|"

WA("Titre de la fenêtre à activer|texte dans la fenêtre|Commandes à envoyer|etc...")


Donc, ma premiere ligne

Code : Tout sélectionner

WA("Installation de Mozilla Firefox|Bienvenue|!s")
Titre : Installation de Mozilla Firefox
Texte : Bienvenue
Send : !s

Re: [..] Détecté une fenêtre active

Posté : jeu. 07 août 2008 21:54
par zouzou
hello sagepourpre

merci pour ton envoi
pour que je puisse utiliser ta fonction wa il faut que j' intègre ton script avant ceci ?

Code : Tout sélectionner

#include <perso.au3>

Run("M:\Backup\ Installations\Internet\Firefox\Firefox Setup 3.0.1.exe")
WA("Installation de Mozilla Firefox|Bienvenue|!s")
WA("Installation de Mozilla Firefox|Accord de licence|!a|!s")
WA("Installation de Mozilla Firefox|options|!s")
WA("Installation de Mozilla Firefox|Résumé|!I")
WA("Installation de Mozilla Firefox|fermer cet|!L|!t")
FileCopy("Profiles.ini",@AppDataDir & "\Mozilla\Firefox",1)

Re: [..] Détecté une fenêtre active

Posté : jeu. 07 août 2008 22:03
par SagePourpre
Tu dois mettre le fichier perso.au3 dans ton dossier include (où est installé autoit)

et pour que la fonction marche dans un script il doit y'avoir
le #include<perso.au3> toujours en premier avec les autres include, s'il y,a lieu au début
du script.

Pour la fonction, si tu va voir ce qu'elle contient, j,ai essayé de la documenter du mieux que
j'ai pu.

Re: [..] Détecté une fenêtre active

Posté : mer. 13 août 2008 23:52
par zouzou
help sagepourpre !

j'ai fait tout comme tu m'as dit
- j'ai mis ton script dans mon dossier "include" d'autoit
- j'ai fait mon propre script; le voici:

Code : Tout sélectionner

#include <perso.au3>

Run("c:\TEMP\Firefox Setup 3.0.exe")
WA("Fichier ouvert - Avertissement de sécurité|Firefox|!e")
WA("Installation de Mozilla Firefox|Bienvenue|!s")
WA("Installation de Mozilla Firefox|Accord de licence|!a|!s")
(je me suis volontairement arrété à 4 lignes pour tester)
- j'ai compilé ce script puis je l'ai lancé sur une autre machine (de test)
la commande "run" fonstionne
la première commande WA (WinActive ?) fonctionne
aprés ça s'arrete sur la commande: WA("Installation de Mozilla Firefox|Bienvenue|!s") et plus rien ne se passe

ça me fait le même pb qur sur mon premier script: fun non ?

Re: [..] Détecté une fenêtre active

Posté : jeu. 14 août 2008 01:13
par SagePourpre
Et si tu essaies avec uniquement la commande run ...

t'as la fenêtre "Avertissement de sécurité" qui se montre ?

Parce que moi, cette fenêtre n'apparaît pas lorsque je me sers de la commande
run d'autoit.

Du coup, avec
WA("Fichier ouvert - Avertissement de sécurité|Firefox|!e")

tu demandes au script d'attendre la fenêtre "Avertissement de sécurité" avant
de continuer... cette ligne n'est donc pas nécessaire.

Re: [..] Détecter une fenêtre active

Posté : jeu. 14 août 2008 18:40
par zouzou
yo sagepourpre (et merci pour ton aide !!)

la commande run se lance bien

j'ai la fenêtre "Avertissement de sécurité" qui se montre effectivement mais la commande
WA("Fichier ouvert - Avertissement de sécurité|Firefox|!e") fait qu'autoit passe bien à la seconde fenetre "Installation de Mozilla Firefox" et c'est là que ça reste figé malgré ma commande WA("Installation de Mozilla Firefox|Bienvenue|!s")

voilà voilà

au fait:
hier soir j'ai fait des tests avec ton script et ça marchait pas; par contre j'ai lancé manuellement firefox (double click sur l'exe) et toutes les fenêtres ont défilées de manière automatiques comme s'il (windows) avait gardé les parametres autoit quelque part (je sais pas si je suis trés clair ?)

c'est fun

ce soir je vais faire un test en m'arrangeant pour virer la premiere fenetre "Avertissement de sécurité"

Est ce que mon pb ne pourrait pas venir aussi de ma version d'auto it ? (j'ai la dernière)
existe t il une version auto it en francais ?

à +

Re: [..] Détecter une fenêtre active

Posté : jeu. 14 août 2008 19:16
par SagePourpre
zouzou a écrit :yo sagepourpre (et merci pour ton aide !!)


hier soir j'ai fait des tests avec ton script et ça marchait pas; par contre j'ai lancé manuellement firefox (double click sur l'exe) et toutes les fenêtres ont défilées de manière automatiques comme s'il (windows) avait gardé les parametres autoit quelque part (je sais pas si je suis trés clair ?)

c'est fun
C'est probablement le problème... Ton script que tu as testé plus tôt bloque en quelque
part et attend la fenêtre de Firefox ... Quand tu l'as parti manuellement quelques heures
plus tard, ton script était toujours actif et du coup, il a vu la fenêtre qu'il attendait
depuis longtemps arriver. Il a donc poursuivi son cours.

Ce qui veut dire que le script bloque en quelque part...

Pourquoi ?
Je ne sais pas trop.

Le script que je t'avais envoyé en premier marche
très bien sur les ordinateurs de mon réseau.

T'es sur quand faisant juste run("firefox.exe") la fenêtre d'avertissement s'affiche ?

Je pose la question parce que, si elle ne s'affiche pas en utilisant la commande run,
ton script bloque parce qu'il attend toujours cette fenêtre.

Et quand tu l'as parti, à la main plus tard le soir, le script aurait débuté ses opérations
en voyant la fenêtre s'afficher.

par contre, en utilisant run, cette fenêtre d'avertissement n'apparait pas...
donc, le script bloque jusqu'à ce qu'il la voit... mais elle ne viendra pas.

En tout cas... c'est ma théorie mais si chez toi cette fenête apparait quand même
(je parle toujours en lançant firefox avec run("firefox.exe") ) je ne sais pas trop
ce qui se passe.

Re: [..] Détecter une fenêtre active

Posté : jeu. 14 août 2008 23:24
par zouzou
re-yo sagepourpre

je suis trop content: ça fonctionne !!!!
:D

en fait j'ai fait en sorte que la première fenêtre n'apparaisse pas et là oh miracle de l'info ça marche

m'authorises tu à utiliser ton script perso.au3 dans le cadre de mon boulot (je bosse à l'education nationale et je suis chargé de mettre en place et d'assurer la maintenance de réseaux informatiques dans des collèges et lycées)
Ton script peux nous aider a automatiser des installs d'applis

dans tous les cas merci encore !

Re: [..] Détecter une fenêtre active

Posté : jeu. 14 août 2008 23:27
par SagePourpre
bah oui ... Pas de problème...

Je l'ai fait pour ça... :D

Re: [..] Détecter une fenêtre active

Posté : sam. 16 août 2008 22:26
par zouzou
hello sagepourpre
encore une petite question: peux t on envoyer des touches spéciales a travers ton script (enter, tab, etc...)

WA("Installation de Mozilla Firefox|Bienvenue|!s")

par exemple remplacer l'envoi du caractere "s" par "enter"

Re: [..] Détecter une fenêtre active

Posté : sam. 16 août 2008 22:35
par SagePourpre
Si tu regardes les commentaires dans la fonction, tu vas voir qu'en plus des send
tu peux faire des controlsend, des mouseclick, msgbox, et bien d'autres.

Par défaut, la fonction fait des send ordinaire donc oui, si tu veux envoyer enter, il suffit de
le faire comme ceci

WA("Tittre|Texte|{ENTER}")