[R] Détecter une fenêtre active

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

[R] Détecter une fenêtre active

#1

Message 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
Modifié en dernier par Tlem le lun. 18 août 2008 00:04, modifié 3 fois.
Raison : Ajout de la balise [..] dans le titre + correction.
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#2

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#3

Message 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
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#4

Message 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
Fichiers joints
perso.au3
(5.57 Kio) Téléchargé 206 fois
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#5

Message 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)
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#6

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#7

Message 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 ?
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#8

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#9

Message 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 ?

à +
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#10

Message 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.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#11

Message 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 !
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#12

Message par SagePourpre »

bah oui ... Pas de problème...

Je l'ai fait pour ça... :D
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

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

#13

Message 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"
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#14

Message 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}")
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre