Hallo
Ich hab grad dass erste mal mit GUIs zu tun und möchte gerne, dass einige Buttons nur dann aktiviert (also anklickbar) sind, wenn ein bestimmtes Programm geöffnet ist. Wird es geschlossen, sollen die Buttons wieder deaktiviert werden.
Leider kommt es bei meiner Methode zu einem Flackern der betroffenen Buttons, weil diese während die GUI-Schleife läuft immerwieder auf aktiv- oder inaktiv gesetzt werden.
Ich habe keine Idee, wie ich das umgehen kann. Ihr?
Beispielcode:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 170, 41, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 8, 8, 73, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Flackerbutton", 88, 8, 73, 25, $WS_GROUP)
GUICtrlSetState(-1,$GUI_DISABLE)
GUISetState(@SW_SHOW)
While 1
[/autoit] [autoit][/autoit] [autoit]If WinExists("[CLASS:Notepad]") Then
GUICtrlSetState($Button2,$GUI_ENABLE)
Else
GUICtrlSetState($Button2,$GUI_DISABLE)
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Wie könnte man den Check nach - in diesem Fall Notepad - so gestalten, dass der rechte Button nicht permanent den Status gesetzt bekommt?