Page 1 sur 1

[R] Alternance de fenêtres

Posté : jeu. 29 juil. 2010 09:58
par Sh4dows
Bonjour à tous !

J'aurais donc besoin d'un petit script :lol: d'habitude c'est pas mon genre mais là... :roll:

Sujet :

Donc j'aimerais si possible et si une personne à un peu de temps un script permettant de lancer une fonction/boite de dialogue dans mon cas si le titre de la fenêtre est différente de la première qui elle etait présente dans le tableau.

Details :

Pour ce code nous allons travaillez avec Mozilla Firefox. Donc, admettons que j'ai un tableau avec une liste de noms, des noms de fenêtres par exemple.

Code : Tout sélectionner

$pageListe[10]
$pageListre[0] = "Google - Mozilla Firefox"
$pageListre[1] = "AutoIt Français • Accueil - Mozilla Firefox"
 
Je souhaiterez récupérer le nom de la fenêtre/onglet active de Mozilla afin de vérifier si elle est présente dans mon tableau. Si elle l'est alors on lance une boite de dialogue par exemple :

Code : Tout sélectionner

MsgBox(64, "AutoIt", "La Fenêtre est présente dans la tableau !")
Ensuite si elle à était présente on vérifie si l'utilisateur en locurrence, change de fenêtre ou d'onglet, pour cela si la fenêtre/onglet active de Mozilla est différente de la dernière qui elle était présente dans le tableau alors on affiche également une boite de dialogue :

Code : Tout sélectionner

MsgBox(64, "AutoIt", "La Fenêtre à changé !")
Et on recommence du début et ceci en boucle !

Mais au début du code je pense qu'il faut vérifier si le processus est actif ou non et utiliser les CLASS car avec http://autoitscript.fr/forum/viewtopic.php?f=3&t=5583 le script fonctionnée à peu près sous Vista mais sous Seven rien du tout !

J'avais testouille :

Code : Tout sélectionner

If ProcessExists("firefox.exe") and WinActive("[CLASS:MozillaUIWindowClass]") Then
 
Mais ne suis pas arriver à faire quelque chose de concret suivant mes besoins !

Donc Merci par avance à celui/celle ou ceux (on ne sait jamais) qui aura l'aimabilité de m'aider :cry: :shock:

Merci par avance !

Cordialement Sh4dows

Re: [..] Alternance de fenêtres  

Posté : jeu. 29 juil. 2010 20:29
par sylvanie
bonsoir

voici un premier jet avec une restriction d'usage explicitée après le code :
► Afficher le texte
je me fie au titre et non à l'ID de l'onglet. Ce qui veut dire que si 2 onglet sont ouverts sur google par exple, alors la détection échouera

je n'ai pas le temps sur le coups, mais le TODO sera alors de garder en mémoire l'id du tab (si possible) pour le comparer

Bonne continuation

Re: [..] Alternance de fenêtres

Posté : jeu. 29 juil. 2010 20:59
par Sh4dows
Merci beaucoup @sylvanie je vais voir ce que j'arrive à faire avec :roll:
Je vous tiens au courant !

Re: [..] Alternance de fenêtres

Posté : jeu. 29 juil. 2010 21:33
par Sh4dows
J'ai réussi je pense à faire ce que je voulais grace à Sylvanie :)

Code : Tout sélectionner

Opt("WinTitleMatchMode",2)
Dim $pageListe[10]
$pageListe[0] = "Google - Mozilla Firefox"
$pageListe[1] = "AutoIt Français • Accueil - Mozilla Firefox"
$maxind=1

While 1
    Monitor_FF()
    Sleep(250)
WEnd


Func Monitor_FF()
    Local $endtitle="Mozilla Firefox"
    Local $title
    Local $ind
    Local Static $old_window=""
    $title = WinGetTitle("")
    If StringRegExp($title,$endtitle&"\z") And BitAND(WinGetState($title),16) = 0 Then
        If $title = $old_window Then Return 0
        For $ind = 0 To $maxind
            If $old_window=$pageListe[$ind] and $title <> $pageListe[$ind] Then
                MsgBox(64, "AutoIt", "La Fenêtre était présente dans la tableau !")
                $old_window=$title
                Return 1
            EndIf
        Next
        $old_window=$title
        MsgBox(64, "AutoIt", "La Fenêtre à changé !")
    EndIf
    Return 0
EndFunc
 
Merci beaucoup :wink: