warten bis keine Taste (mehr) gedrückt ist

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

warten bis keine Taste (mehr) gedrückt ist

Post by Gerdi » 18 Aug 2022, 08:38

wenn eine der folgenden Schreibweisen
KeyWait oder KeyWait,* oder KeyWait, [Beliebige_Taste]
so lange warten würde bis keine Taste gedrückt ist, dann wäre dieser Topic beantwortet.

Kennt jemand einen funktionierenden KeyWait oder sonstige Befehle, die ohne lange Tastenlisten auskommen (und dabei letztendlich doch nicht alle Tasten berücksichtigt zu haben)?

Wenn keine Taste gedrückt ist, soll es sofort weiter gehen, ansonsten soll gewartet werden bis die letzte Taste losgelassen wurde.

Mause- oder JoyStick-Tasten zu berücksichtigen ist nicht zwingend.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick


User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: warten bis keine Taste (mehr) gedrückt ist

Post by Gerdi » 18 Aug 2022, 10:20

Danke BoBo, vermutlich werde ich es mit einer Timeidle Variablen realisieren müssen. Da ist aber noch das offene Problem, wenn eine dauergedrückte Taste, weil sich nichts verändert, von TimeIdle nicht mehr bemerkt wird. Die Tasten mit Tastatur-Repeat sollten davon nicht betroffen sein, aber wie ist es mit den umschalt-Tasten, wie bspw. Shift oder Ctrl ? Die 2 Letzteren haben bei mir einen Repeat. Vermutlich haben ihn auch die Anderen, sodass meine Sorge unbegründet sein wird. Die Gefahr von aus geschaltenem Tastatur-Repeat wird wohl auch verschwindend gering sein.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick

Rohwedder
Posts: 7551
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: warten bis keine Taste (mehr) gedrückt ist

Post by Rohwedder » 19 Aug 2022, 04:15

Hallo,
versuch es mal hiermit:

Code: Select all

#InstallKeybdHook
#InstallMouseHook
q::
While, KC := KeyCombination()
	ToolTip,% KC
ToolTip
ComObjCreate("SAPI.SpVoice").Speak("keine Taste mehr gedrückt")
Return

KeyCombination(ExcludeKeys:="")
{ ;All pressed keys and buttons will be listed
    ExcludeKeys .= "{Shift}{Control}{Alt}{WheelUp}{WheelDown}"
    Loop, 0xFF
    {
        IF !GetKeyState(Key:=Format("VK{:02X}",0x100-A_Index),"P")
            Continue
        If !InStr(ExcludeKeys,Key:="{" GetKeyName(Key) "}")
            KeyCombination .= RegexReplace(Key,"Numpad(\D+)","$1")
    }
    Return, KeyCombination
}
oder ohne Schnickschnack:

Code: Select all

#InstallKeybdHook
#InstallMouseHook
q::
While, Taste_gedrückt()
	Continue
Return

Taste_gedrückt()
{
	Loop, 0xFF
		IF GetKeyState(Key:=Format("VK{:02X}",A_Index),"P")
			Return, True
	Return, False
}

User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: warten bis keine Taste (mehr) gedrückt ist

Post by Gerdi » 19 Aug 2022, 08:18

Danke Rohwedder,
das sieht gut aus, habe allerdings noch Herausforderungen beim Einbau in mein Skript.
Ich melde mich gegebenenfalls mit Details.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick

Post Reply

Return to “Ich brauche Hilfe”