Page 1 sur 1

[R] Detecter la fenêtre active + Historique

Posté : mar. 11 nov. 2008 13:04
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

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

Posté : mar. 11 nov. 2008 13:16
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

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

Posté : mar. 11 nov. 2008 13:17
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]

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

Posté : mar. 11 nov. 2008 13:21
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 :)