Goto mit Enter:: aber nur solange bis das Fenster geschlossen ist

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

GamerG1rl
Posts: 48
Joined: 23 Nov 2017, 04:44

Goto mit Enter:: aber nur solange bis das Fenster geschlossen ist

03 May 2020, 17:12

Hallöchen,

ich suche nach einer Möglichkeit, um folgendes zu tun:
Ich habe ein Gui gebaut, welches mehrere Abfragen (name, Adresse usw.) beinählt.
Der User soll mit einem Drücken auf Enter zur nächsten Frage geleitet werden (habe es so gebaut, dass die Antwort mit 0 vermerkt wird und nur alle Werte abgefragt werden, die eine 1 haben)

Habe schon folgendes gebaut, bekomme da aber die Rückmeldung, dass Enter doppelt belegt ist (was ja auch stimmt)
Hat jemand n Tipp ?

Code: Select all

Start:
Gui1Aktiv := True
While (Gui1Aktiv) ; auf das Schließen von Gui 1 warten
{
   Enter::
	gosub, Datenabfrage2
return
}
else
{
	msgbox, Feierabend
	Enter::
   {
	
	}
	return
}

Datenabfrage2:
Var := Var +1
msgbox, %var%

if (Var >= "5")
	Gui15Aktiv := False
Goto, Start

return
HotKeyIt
Posts: 2364
Joined: 29 Sep 2013, 18:35
Contact:

Re: Goto mit Enter:: aber nur solange bis das Fenster geschlossen ist

03 May 2020, 19:50

Du kannst ein Button mit Default Option nutzen:

Code: Select all

Gui,Add,Edit,w200
Gui,Add,Button,x0 y0 Default Hidden gEnter,Enter
Gui,Show
return

Enter:
MsgBox You pressed Enter!
Return

GuiClose:
ExitApp
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Goto mit Enter:: aber nur solange bis das Fenster geschlossen ist

04 May 2020, 04:51

Moin,

es ist nicht möglich, Hotkeys in Abhängigkeit von 'normalen' Bedingungsprüfungen wie While oder Else zu definieren. Wenn das Skript eingelesen wird, werden die Hotkeys dann sofort angelegt, als hättest Du die Definitionen einzeln an das Ende des Skripts gestellt. Deshalb kommt auch die Fehlermeldung zum doppelten Enter Hotkey.

Wenn Du mit 'bedingten' Hotkeys arbeiten willst, hilft DIr die #If Direktive. Das könnte dann so aussehen:

Code: Select all

Start:
Gui1Aktiv := True
While (Gui1Aktiv) ; auf das Schließen von Gui 1 warten
{
	Sleep, 10
}
MsgBox, Feierabend
Return

#If (Gui1Aktiv)
Enter::
	Gosub, Datenabfrage2
Return
#If

Datenabfrage2:
Var := Var + 1
MsgBox, %Var%
If (Var >= 5)
	Gui1Aktiv := False
Return
Alternativ kann man Hotkeys mit der Hotkey Anweisung aus- und einschalten.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 55 guests