InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen. Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Nussbeisser
Posts: 27
Joined: 17 Jul 2019, 08:49

InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.

16 Jan 2020, 11:15

Hallo,
Gibt es eine Möglichkeit, dass der InputBox erst dann geschlossen wird, wenn nach meiner letzten Eingabe 3 Sekunden verstrichen sind.
Ich habe ein InputBox mit der Titel "HotString starter", der wird nach 5 Sekunden geschlossen, naja mein Strings sind sehr lang und manchmal vertippe ich mich auch, so dass der InputBox geschlossen wird, während ich noch am Tippen bin.

LG


Code: Select all

^F1::
InputBox, OutputVar, HotString stater, ,,80,100, ,,, 5
return

#IfWinActive HotString starter
:*:aboutr::
MsgBox, Es wurde aboutr gestartet.
#IfWinActive 
Return
User avatar
Frosti
Posts: 282
Joined: 27 Oct 2017, 14:30
GitHub: Ixiko

Re: InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.

16 Jan 2020, 12:04

InputBox, OutputVar, HotString stater, ,,80,100, ,,, 5
The last integer is the time in seconds!
Delete it or increase it!
gregster
Posts: 3729
Joined: 30 Sep 2013, 06:48

Re: InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.

16 Jan 2020, 12:22

Btw, du hast einen Tippfehler in der InputBox-Zeile, Hotstring stater vs Hotstring starter später

Am einfachsten wär es wahrscheinlich, wenn du die Inputbox in der Hotstring-Routine schließt, d. h. genau dann, wenn ein Hotstring erkannt wurde.

Code: Select all

^F1::
InputBox, OutputVar, HotString starter, ,,80,100
return

#IfWinActive HotString starter
:*:aboutr::
Winclose, HotString starter
MsgBox, Es wurde aboutr gestartet.
Return
#IfWinActive
Rohwedder
Posts: 2535
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.  Topic is solved

17 Jan 2020, 02:47

Hallo,
versuche es mit einem Timer:

Code: Select all

^F1::
SetTimer, CloseInputBox, 100
InputBox, OutputVar, HotString starter, ,,80,100
SetTimer, CloseInputBox, Off
return
CloseInputBox:
IF A_TimeIdle > 3000
	Winclose, HotString starter
Return
#IfWinActive HotString starter
:*:aboutr::
MsgBox, Es wurde aboutr gestartet.
Return
#IfWinActive
just me
Posts: 6730
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.

17 Jan 2020, 07:45

Moin,

wenn es im Kern nur darum geht, ein Eingabefeld für einen Hotstring bereitzustellen, solltest Du ein Gui benutzen. Das lässt sich einfacher kontrollieren.
Nussbeisser
Posts: 27
Joined: 17 Jul 2019, 08:49

Re: InputBox soll erst dann geschlossen werden, wenn ich aufhöre zu tippen.

17 Jan 2020, 14:17

Danke für Vorschläge und Tipps.
@Rohwedder Macht genau das, was ich wollte.
Gestern habe ich auch versucht mit SetTimer es zu realisieren, habe irgendwann aufgegeben.
Auf A_TimeIdle bin ich gar nicht gekommen.

Code: Select all

^F1::
AktLang := 0
NachLang := 0
SetTimer, InPutTimer, 3000
InputBox, OutputVar, HotString starter, ,,80,100

Return
InPutTimer:
ControlGetText, MyVar, Edit1, HotString starter
AktLang := StrLen(MyVar)

if (AktLang != NachLang)
{
SetTimer, InPutTimer, On
WinClose , HotString starter

If !WinExist("HotString starter")
SetTimer, InPutTimer, Off

NachLang := StrLen(MyVar)
ToolTip, %AktLang% - %NachLang%
Sleep, 1500
ToolTip
return

#IfWinActive HotString starter
:*:aboutr::
MsgBox, Es wurde aboutr gestartet.
#IfWinActive 
Return

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: Bing [Bot] and 23 guests