Hallo liebe Autoit'ler!
Aktueller Stand:
Ich habe eine Funktion, welche den Status eines Buttons(einer Instance) überprüft.
Also bei Status null tue das, ansonsten Status 1 tue das...
Allerdings kommt man momentan erst in diese Funktion, wenn Windows aktiv ist.(unten nochmal der gesamte Quellcode, habe ich leider nicht selber geschrieben)
#cs Button 7 ist der Abmeldebutton, Button 6 ist der Anmeldebutton
und Button 10 ist dieser "Bereit" Button, 11 bzw. 12 wären die Statusbutton(z.B. "Beschäftigt")
Es sollte nur überprüft werden, ob 10, 11 oder 12 aktiv sind, wenn nicht soll auf Bereit(10) geklickt werden. #ce
If $ret[0] = 0 Then
ControlClick($handle,"","[CLASS:Button;INSTANCE:7]")
$i = 0
Else
if $i = 0 then
ControlClick($handle,"","[CLASS:Button;INSTANCE:6]")
EndIf
ControlClick($handle,"","[CLASS:Button;INSTANCE:10]")
;WinSetState ($handle, "", @SW_MINIMIZE)
$i = 1
EndIf
Alles anzeigen
Gewünschte Veränderung:
Ich möchte aber nun, dass ein zweiter Button überprüft wird, also:
Wenn beide Buttons auf Status 1 dann tue das, ansonsten tue das.
Kann ich eine verschachtelte IF-Funktion dafür verwenden? Wie wäre diese aufgebaut, habe noch keine Erfahrung damit. Oder wie kann man sagen, wenn der und der Button = 0, dann... ansonsten Prüfung wiederholen.
Hintergrund:
Es geht um eine Telefonanmeldesoftware, das jetzige Script sorgt dafür, dass erkannt wird, wenn der User nicht am Platz ist und dann logt sich die Software automatisch aus.
Wenn man jedoch am Platz bleibt, aber nicht gestört werden möchte muss man seinen Status ändern, das ist momentan noch nicht möglich, es geht nur, 1.Ich bin da, 2. Ich bin nicht da.
Es gibt also nicht die Möglichkeit sich auf "Beschäftigt" zu stellen, da momentan alle 2 Sekunden der "Bereit-Button" abgefragt wird.
Gesamter Code:
sleep (15000)
$i = 0
While True
AutoItSetOption("WinTitleMatchMode", 1)
$DESKTOP_SWITCHDESKTOP = 0x100
$hDesktop = DllCall("User32.dll", "int", "OpenDesktop", "str", "Default", "int", 0, "int", 0, "int", $DESKTOP_SWITCHDESKTOP)
$ret = DllCall("User32.dll", "int", "SwitchDesktop", "int", $hDesktop[0])
DllCall("User32.dll", "int", "CloseDesktop", "int", $ret[0])
if not WinExists ('ACD Agent - name') then
Run ("C:\Program Files\ACD Clients\AcdAgent.exe")
WinWaitActive ('ACD Agent - name')
sleep(5000)
endif
$handle = WinGetHandle ('ACD Agent - name')
If $ret[0] = 0 Then
ControlClick($handle,"","[CLASS:Button;INSTANCE:7]")
$i = 0
Else
if $i = 0 then
ControlClick($handle,"","[CLASS:Button;INSTANCE:6]")
EndIf
ControlClick($handle,"","[CLASS:Button;INSTANCE:10]")
WinSetState ($handle, "", @SW_MINIMIZE)
$i = 1
EndIf
sleep (2000)
WEnd
Alles anzeigen
Vielen Dank schonmal!