Guten Abend zusammen,
Wie kann ich den Status meines GUIs auslesen? Z.b ob es Minimiert maximiert ist etc... ?
GUI Status auslesen
-
- [ offen ]
-
Captcha -
28. Oktober 2012 um 18:44 -
Geschlossen -
Erledigt
-
-
WinGetState sollte dabei helfen.
Rückgabewerte
[...]
16 = Minimiert
32 = Maximiert -
vielen dank
-
[autoit]
WinGetState
[/autoit]
Edit: zu langsam... -
hm... bei mir funktioniert das nicht so ganz
Hier ein kleiner ausschnitt:
[autoit]Func _Log ($Data) _Chatbox_SetData($History, $Data & @CRLF) _GUICtrlEdit_LineScroll ($History, 0, _GUICtrlEdit_GetLineCount ($History) - 1) If WinGetState($GUI,"") = 16 Then SoundSetWaveVolume(0) Else SoundSetWaveVolume(100) SoundPlay(@scriptdir&"\png\message.mp3") EndIfEndFunc
[/autoit] -
Einfach nur Hilfe lesen...
Den Titel des Fensters, nicht das GUI Handle nehmen!Zitat von HilfeDer Titel des Fensters, das gelesen werden soll. Siehe Erweiterte Fenstertiteldefinition.
Außerdem ist dein Code nicht richtig eingebettet, die ganzen Absätze fehlen (zumindest bei mir).
-
Außerdem ist dein Code nicht richtig eingebettet, die ganzen Absätze fehlen (zumindest bei mir).
Nicht nur bei dir... @Captcha Benutzt du den "Editor"-Tab? Wenn ja, nimm' denn für Quellcode beim Posten von solchem.
-
öhm.. okay
-
hm... mein Programm heißt Easy Chat aber wenn ich das dort eingebe bugs das immer noch rum :o
Func _Log ($Data)
_Chatbox_SetData($History, $Data & @CRLF)
_GUICtrlEdit_LineScroll ($History, 0, _GUICtrlEdit_GetLineCount ($History) - 1)
If WinGetState("Easy Chat") = 16 Then
SoundSetWaveVolume(100)
SoundPlay(@scriptdir&"\png\message.mp3")
Else
SoundSetWaveVolume(0)
EndIf
EndFunc -
Einfach nur Hilfe lesen... :PDen Titel des Fensters, nicht das GUI Handle nehmen! Zitat von »Hilfe«Der Titel des Fensters, das gelesen werden soll. Siehe Erweiterte Fenstertiteldefinition.Außerdem ist dein Code nicht richtig eingebettet, die ganzen Absätze fehlen (zumindest bei mir).
Falsch!
Zitat von HilfeFenster Handles / HWNDs
Der Datentyp 'Variant' in AutoIt unterstützt von Haus aus Fenster-Handles (HWNDs). Ein Fenster-Handle ist ein spezieller Wert, den Windows jedesmal dann einem Fenster zuordnet, sobald eines erstellt wird. Kennt man ein Fenster-Handle, kann man es an Stelle des Titel Parameters in jedem Funktionsaufruf nutzen, der die Titel/Text Vereinbarungen erfüllt. Der Vorteil bei der Nutzung der Fenster-Handles ist der, dass wenn man mehrere Kopien einer Applikation geöffnet hat, -die alle den selben Titel/Text haben- man diese eindeutig über ihre Fenster-Handles identifizieren kann. Wenn man ein Fenster-Handle als Titel Parameter nutzt, dann wird der Text Parameter vollständig ignoriert.es ist dadurch sogar eindeutig.
mfg autoBert
-
Wusste ich noch nicht, gut zu wissen, danke!
@Captcha:
Du kannst also doch das Handle, also $GUI nutzen, war da wohl falsch informiert...
[autoit]
Was genau klappt denn nicht?
In der Hilfe ist dazu auch ein gutes Beispiel:; Prüft ob ein neues Editor-Fenster minimiert ist
[/autoit][autoit][/autoit][autoit]
$state = WinGetState("[CLASS:Notepad]", ""); Wurde der Wert für Minimieren gesetzt?
[/autoit]
If BitAnd($state, 16) Then
MsgBox(0, "Beispiel", "Fenster ist minimiert")
EndIf -
ok danke geht jetzt