warten bis keine Taste (mehr) gedrückt ist

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: warten bis keine Taste (mehr) gedrückt ist

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

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.

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

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
}

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

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.

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

by BoBo » 18 Aug 2022, 08:56

warten bis keine Taste (mehr) gedrückt ist

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.

Top