Nach GUI Bestätigung zurück zum richtigen Fenster
Posted: 13 May 2024, 05:59
Hallo Zusammen,
ich möchte ein GUI anzeigen lassen, welches einige Fragen abfragt und diese dann später ausgibt, nachfolgend der CODE dafür, der erstmal auch funktioniert:
Ich habe allerdings das Problem, das ich für diese Fragen in mehrere Fenster gehen muss, um diese alle zusammen zu tragen. Nach dem Bestätigen soll dann zu dem Fenster gesprungen werden, aus dem man das GUI aufgerufen hat, um dort dann den Sendinput durchzuführen.
Ich hatte überlegt den Window Handle zu ermitteln, bevor das GUI sich aktiviert, um diesen nach dem GUI dafür zu nutzen, zurück in genau dieses Fenster zu springen. Dabei scheitert es schon...
Wenn ich im Notepad bin, bekomme ich den Handle.. aber wenn ich mich in anderen Programmen bewege, bekomme ich nur 0x0 als Ausgabe, damit werde ich wohl nicht weiterarbeiten können. Außerdem suche ich vergeblich danach, wie ich das Handle nutzen kann, um das Fenster wieder aufzurufen.
ich möchte ein GUI anzeigen lassen, welches einige Fragen abfragt und diese dann später ausgibt, nachfolgend der CODE dafür, der erstmal auch funktioniert:
Code: Select all
::Formular::
Gui, New
Gui, Show, w305 h180, GUINAME)
Gui, Add, Text,, Frage1:
Gui, Add, Edit, vFrage1
Gui, Add, Text,, Frage2:
Gui, Add, Edit, vFrage2
Gui, Add, Text,, Frage3:
Gui, Add, Edit, vFrage3
Gui, Add, Button, Default gFrage, OK
Gui, Show
WinSet, AlwaysOnTop, On, GUINAME
SendInput, {TAB} ;damit springe ich zum ersten Edit Feld in meinem GUI
return
Formular:
Gui, Submit
; Den Text für SendInput erstellen und in die Zwischenablage kopieren
FrageText := "Gibt testweise alle Antworten aus" . Frage1 . " und " . Frage2 . " und " . Frage3 . " . "
Clipboard := FrageText
; Umlaute und Sonderzeichen ersetzen
FrageText := StrReplace(FrageText, "ä", "{U+00E4}")
FrageText := StrReplace(FrageText, "Ä", "{U+00C4}")
FrageText := StrReplace(FrageText, "ö", "{U+00F6}")
FrageText := StrReplace(FrageText, "Ö", "{U+00D6}")
FrageText := StrReplace(FrageText, "ü", "{U+00FC}")
FrageText := StrReplace(FrageText, "Ü", "{U+00DC}")
FrageText := StrReplace(FrageText, "ß", "{U+00DF}")
; Den Text senden
SendInput, %FrageText%
return
Ich hatte überlegt den Window Handle zu ermitteln, bevor das GUI sich aktiviert, um diesen nach dem GUI dafür zu nutzen, zurück in genau dieses Fenster zu springen. Dabei scheitert es schon...
Code: Select all
F4::
UniqueID := WinActive(WinTitle, WinText, ExcludeTitle, ExcludeText)
MsgBox, % "Die gewuenschte Variable lautet: " . UniqueID
Return