hallo autoit-Könner , nutze Autoit nur sporadisch und möchte mit diesem ein innerhalb eines Anwendungsprogrammes aufpoppendes Fenster mit Ja- Nein Abfrage automatisch mit Ja beantworten. Bei der zyklischen Abfrage mit IfWinExists(" -") verliert das Hauptfenster den Focus und müsste per Klick erneut aktiviert werden . Wie lässt sich dieses verhindern ? Die Funktion sollte so lange das Hauptprogramm aktiv ist ,einfach im Hintergrund laufen ohne wesentliche Ressourcen zu verbrauchen . Ein Möglichkeit wäre mit dem Windows- Taskmanager das Programm immer erneut zu starten , aber gibt es nicht auch eine Möglichkeit innerhalb von autoit ? Dankbar für Hinweis oder Link zur Problemlösung .
-
-
Hi und Willkommen im forum!
Einfach nachdem If WinExists ein WinActivate einbauen
Sollte klappen wenn ich das richtig verstanden habe
Im Notfall poste einfach einmal deinen Source!
Mfg Lenny
-
Leider ist die Situation noch etwas komplexer Programm A- ruft Programm B auf ,dieses übergibt Info an Programm A zurück , welches mit dem Popup- fenster antwortet . Es gibt also nicht nur ein offenes Fenster sondern deren mindestens 2 die wechselseitig kommunizieren . Das Programm A zu Aktivieren wenn eigentlich Programm B im Focus stand wäre nicht sinnvoll
-
While 1
If WinExists("popup__von_A") Then
WinActivate("popup_von_A")
Send("!j")
Winactive("Anwendung_B")
Endif
WEnd -
Hi!
Jo ... oder an das nicht fokosiert Fenster mit ControlSend ^.^!?Sonst gib uns bitte mal den Source!
Mfg Lenny
-
Hallo hier ist der Quellcode mit dem die Fenster den Focus verlieren
AutoItSetOption("WinTitleMatchMode", 4)
AutoItWinSetTitle("Reminder")
WinSetState("Reminder", "", @SW_HIDE)
wait()func wait ()
WinSetState("Reminder", "", @SW_HIDE)
sleep(500)
click()
EndFuncfunc click()
If Winexists("classname=#32770") Then
sleep(100)
WinActivate("classname=#32770")
ControlClick("","Ja","Button1")
wait()
EndIf
wait()
EndFunc
ExitHier der 2. Code ohne wechselnden Focus worin besteht der Unterschied ?
Opt("WinTitleMatchMode", 4)
prog1()func prog1()
If WinExists("test1.txt") Then
;MsgBox(0, "", "Window Test1 exists")
sleep(500)
prog2()
EndIf
sleep (500)
EndFuncfunc prog2()
If WinExists("test2.txt") Then
;MsgBox(0, "", "Window Test2 exists")
sleep(500)
prog1()
EndIf
sleep (500)
EndFuncExit
Wie lässt sich der Unterschied erklären ?? oder abstellen