Inputbox mit Countdown und Default Value

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

AHK_Beginner
Posts: 3
Joined: 11 Jan 2016, 05:09

Inputbox mit Countdown und Default Value

07 Jun 2018, 09:32

Hallo,

sorry, ich tue mich noch sehr schwer meine Gedanken im Code umzusetzen.

Ich hätte gerne eine kleine Inputbox, die einen Countdown Timer hat und schon einen default Wert gesetzt hat.

-- Es soll nur 1, 2, oder 3 als Eingabe möglich sein. Bei einer falschen Eingabe soll das Script neu starten
-- Ein Druck auf Cancel soll das Script natürlich auch beenden.
-- "1" ist der default Wert und wenn der Timer abgelaufen ist, dann soll das, was für "1" festgelegt ist natürlich auch passieren.

Bei Eingabe von 1, 2 , 3 sollen am Ende andere AHK Scripte gestartet werden (Run ...) oder Funktionen aufgerufen werden.
Aber super wäre, wenn mir erstmal jemand mit den ganzen if`s helfen könnte...
Ich denke da liegt der Hund begraben und der Hase im Pfeffer :roll:

Nachfolgend das ist das was ich aktuell habe, aber irgendwie startet das Script immer neu, egal was man eingibt.
Außerdem steht der default Wert "1" zwar in der Eingabezeile, aber wenn man den Timer nur ablaufen läßt und nicht OK klickt, dann ist das Ergebnis dasgleiche, wie wenn man "Cancel" drückt.

Code: Select all

Secs := 10
SetTimer, CountDown, 1000


InputBox, UserInput, Automatisch weiter in 10 seconds, Please enter 1 - 3:`n`n1 = IM-WIP`n2 = IM-List`n3 = IM-WIP&List, , , , , , , %Secs%, 1
SetTimer, CountDown, Off

{
if UserInput not between 1 and 3
    MsgBox, , NÖNÖNÖ, Zu blöd 1 2 oder 3 einzugeben oder was -lol-, 2
;    ExitApp
    Reload 

;if InputBox Timeout
;    MsgBox, , NÖNÖNÖ, Du bist zu langsam, 5

if ErrorLevel
    MsgBox, , NÖNÖNÖ, CANCEL was pressed., 5

if UserInput = 1
    MsgBox, , TOLL, Super deine Eingabe: "%UserInput%", 5

else
    MsgBox, ,VOLLPFOSTEN-ALARM, You entered "%UserInput%", 5
    ExitApp
}

CountDown:
--Secs
;Secs -= 1
WinSetTitle, Automatisch weiter in,, Automatisch weiter in %Secs% seconds 
Return
Beim Countdown habe ich getestet: Es funktioniert beides: "--Secs" und auch "Secs -= 1"
Aber im Title werden manchmal nicht nur die herunterzählenden vollen Sekunden angezeigt, sondern auch mehrstellige minus Werte?
Manchmal klappt es aber auch. Das ist aber nur ein sekundäres Problem

Besten Dank vorab und VG, AHK_Beginner
just me
Posts: 9449
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Inputbox mit Countdown und Default Value

10 Jun 2018, 01:37

Moin,

Dein Hauptproblem sind die If Anweisungen. Schau Dir das mal an:
Sobald IF oder ELSE mehrere Zeilen enthält, müssen diese Zeilen mit geschweiften Klammern umschlossen werden. Zum Beispiel:

Code: Select all

if Anzahl <= 0
{
    WinClose Unbenannt - Editor
    MsgBox Es sind keine Elemente vorhanden.
}
Hat ein IF oder ELSE allerdings nur eine Zeile, können die geschweiften Klammern weggelassen werden.
Wenn man in Deinem Code die Blockklammern so einfügt, wie AHK das Ganze sieht, kommt dann z.B. das raus

Code: Select all

if UserInput not between 1 and 3
{
   MsgBox, , NÖNÖNÖ, Zu blöd 1 2 oder 3 einzugeben oder was -lol-, 2
}
;    ExitApp
Reload 
Und das ist bestimmt nicht das, was Du willst.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 21 guests