Hallo,
ich habe da einige kleine Fragen zu dem "WinGetState"-Befehl und seinen Rückgabewerten.
Wenn ich den Status eines Fensters mit dem Befehl abfrage, gibt der mir ja folgende Werte zum auswerten zurück.
1 = Fenster existiert.
2 = Fenster ist sichtbar.
4 = Fenster ist freigegeben.
8 = Fenster ist aktiv.
16 = Fenster ist minimiert.
32 = Fenster ist maximiert.
Die Bedeutung der Werte 1, 2, 16 und 32 ist mir klar, nur worin besteht eigentlich der Unterschied zwischen 4 und 8 ?
Ein Fenster, in dem man etwas eingeben kann, müsste doch freigegeben und aktiv sein ?
Anscheinend kann ein Fenster aber freigegeben und trotzdem inaktiv sein.
Den Status eines Fensters kann ich doch z.B mit:
[autoit]For $_Cntr = 0 To 20
Sleep(1000)
If Not BitAND(WinGetState($_Wnd_Title, $_Wnd_Text), And Not BitAND(WinGetState($_Wnd_Title, $_Wnd_Text), 4) Then
ExitLoop
EndIf
Next
abfragen.
Diese Programmzeilen müsste doch eigentlich zum gleichen Ergebnis führen:
For $_Cntr = 0 To 20
Sleep(1000)
If Not BitAND(WinGetState($_Wnd_Title, $_Wnd_Text), 12) Then
ExitLoop
EndIf
Next
Oder sehe ich da etwas total falsch, da die beiden Versionen zu unterschiedlichen Ergebnissen führen.
(im zweiten Fall wird die Schleife anscheinend schneller durchlaufen, so als wenn der "Sleep(1000)"-Befehl einfach ignoriert würde. Der Schleifenzähler "$_Cntr" erreicht den Wert 20 in nur etwa fünf Sekunden).
MfG:
BigRox