Anlehnend an meinen anderen Thread: Programm schreiben, das überprüfen soll ob .exe im Hintergrund läuft (vielen Dank an dieser Stelle für die zahlreichen Antworten!) möchte ich auf eine bestimmte Stelle klicken, wenn ein bestimmtes Fenster erscheint.
Allerdings soll das in einer while-Schleife passieren. Meine will nicht so ganz klappen:
While 1
If Not ProcessExists('AnyDesk.exe') Then
Run('C:\Program Files (x86)\AnyDesk\AnyDesk.exe')
EndIf
Sleep(250)
If WinWait("[class:ad_win#3]") Then
Sleep(1000)
MouseClick("left", 695, 728, 1)
EndIf
WEnd
Alles anzeigen
Also, das erste Problem hierbei ist, dass das erste if-Statement nur einmal ausgeführt wird. Kann mir vorstellen, dass es daran liegt, dass er beim zweiten hängenbleibt.
Das zweite Problem ist, dass ich beim MousClick nicht per Koordinaten klicken möchte, da diese sich immer wieder verändern können.
Ich glaube, die Lösung ist es, per Klassen zu arbeiten. Allerdings weiß ich nicht, ob ich die Klasse von "Basic Window Info" oder von "Basic Control Info" nehmen muss.
Wenn ich bestimmte klickbare Teile innerhalb des Fensters auswähle, dann ändert sich eine Klasse, die andere bleibt gleich. Heißt, es müsste die änderbare, also Basic Control Info sein, denke ich mal: basic_button#9
Was habe ich also falsch gemacht?