[R] Detecter la fenêtre active + Historique

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

[R] Detecter la fenêtre active + Historique

#1

Message par L4crymal »

Voila je cherche à trouver la fenêtre active ( résolu ) mais aussi à les lister dans un fichier texte j'ai donc essayer ce code ( avec la participation de Tlem timmalos ) :

Code : Tout sélectionner

dim $gui
While 1
$var = WinList ()
For $i = 1 to $var[0][0]
          If $var[$i][0] <> "" AND IsActive($var[$i][1]) Then
                                
File0Write($var,$gui)
          EndIf
Next
WEnd
Func IsActive($handle)
          If BitAnd( WinGetState($handle), 8 ) Then
            Return 1
          Else
            Return 0
          EndIf

EndFunc

Func File0Write($var,$gui)
                                    If $var[$i][0] = $gui Then

                                Else 
                                FileWrite ( "loggui.txt", $var[$i][0] & @LF )
                                $var[$i][0] = $gui
                            EndIf
                            
EndFunc

Mais cela me liste plein de fois la même fenêtre ...
C'est embêtant que la Fonction File0Write($var,$gui) ne fonctionne pas comme je le voudrais :

Si le nom de la fenêtre est le même que celui de la fenêtre précédente alors c'est que c'est la même fenêtre et on fait rien sinon on écrit le nom de cette fenêtre dans un fichier

Pouvez vous m'aider à trouver le truc qui va pas dans la fonction merci d'avance :)



EDIT : j'ai trouver l'erreur : c'est cette ligne :

Code : Tout sélectionner

$var[$i][0] = $gui

Je n'arrive pas à donner la valeur de nom de la fenêtre à la variable $gui
Modifié en dernier par L4crymal le mar. 11 nov. 2008 13:21, modifié 1 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Detecter la fenêtre active + Historique

#2

Message par timmalos »

Voilà plus simple:

Code : Tout sélectionner

#Include <File.au3>
Global $var_ancienne, $log = @ScriptDir & "\log.log"
$var = WinList()
While 1
    For $i = 1 to $var[0][0]
        If $var[$i][0] <> $var_ancienne And $var[$i][0] <> ""  And IsActive($var[$i][1]) Then
                    _FileWriteLog($log,$var[$i][0])
                    $var_ancienne = $var[$i][0]
        EndIf
    Next
Sleep(100)
WEnd

Func IsActive($handle)
          If BitAnd( WinGetState($handle), 8 ) Then 
            Return 1
          Else
            Return 0
          EndIf

EndFunc
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Detecter la fenêtre active + Historique

#3

Message par timmalos »

Mais pour ton problème, (oublié de te repondre dans le message d'en dessus)

Remplace ca:
$var[$i][0] = $gui
Par ca:
$gui =$var[$i][0]
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] Detecter la fenêtre active + Historique

#4

Message par L4crymal »

Je sais pas ce que j'ai fumer aujourd'hui mais je passe a coté de la plaque à chaque fois merci pour toi :)
Répondre