Seite 1 von 1

GetKeyState_() reagiert wie ein Taster

Verfasst: 01.08.2010 16:37
von Tombi
Liebe Community,
habe momentan ein Problem.

Würde gerne eine Taste mit GetKeyState_() abfragen
Z.b. die Rückgängig-Taste

Code: Alles auswählen

If GetKeyState_($08) > 0
   debug "enter gedrückt"
EndIf
Nunja... wenn ich nun die Taste drücke registiert er am laufendem Band das die Taste gedrückt ist.
Auch wenn ich die Taste loslasse, registriert er noch einen Tastendruck...
Erst bei wiederholten Drücken der Taste wird das ganze gestoppt.

Ich wollte aber keine "An/Ausschalt" Funktion meiner Taste geben, sondern einfach nur abfragen,
ob die Taste IN DIESEM MOMENT gedrückt wird.

Hoffe Ihr könnt mir weiterhelfen.


Und nein, "GetAsyncKeyState" möchte ich nicht verwenden !


MFG,
Tombi

Re: GetKeyState_() reagiert wie ein Taster

Verfasst: 01.08.2010 16:47
von Kevin
so gehts:

Code: Alles auswählen

Repeat
 
 state=GetKeyState_(#VK_RETURN)
 If state<>0 And state<>1
  Debug "return"
 EndIf
 
 Delay(100)
 
ForEver

Re: GetKeyState_() reagiert wie ein Taster

Verfasst: 01.08.2010 17:17
von freak
MSDN hat geschrieben:The return value specifies the status of the specified virtual key, as follows:
  • If the high-order bit is 1, the key is down; otherwise, it is up.
  • If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
So ist richtig:

Code: Alles auswählen

If GetKeyState_(#VK_RETURN) & $8000
  ; ...
EndIf

Re: GetKeyState_() reagiert wie ein Taster

Verfasst: 01.08.2010 18:32
von Tombi
freak hat geschrieben:
MSDN hat geschrieben:The return value specifies the status of the specified virtual key, as follows:
  • If the high-order bit is 1, the key is down; otherwise, it is up.
  • If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
So ist richtig:

Code: Alles auswählen

If GetKeyState_(#VK_RETURN) & $8000
  ; ...
EndIf
Irgendwas stimmt da nicht. Funktioniert fast nie.
Und wenn dann nur im Zusammenhang mit einer normalen Taste...

Bitte nochmal testen?!

Re: GetKeyState_() reagiert wie ein Taster

Verfasst: 01.08.2010 21:39
von Tombi
Sry wegen Doppelpost.
Muss sein, damit auch jeder das jetzt liest, der den oberen Beitrag schon gelesen hat
(editieren bringt nicht unbedingt viel, da es den Thread nicht pusht..)

Habe das Problem ein wenig lokalisieren können.

Wenn ich den genannten Code mit VM_KEYUP abrufe, ist alles kein Problem...

Nur möchte ich den genannten Code mit VM_KEYDOWN abrufen (benutze ich auch für die anderen Tasten wie z.b. ASDIASDP ohne weitere Probleme).

Nur reagiert das ganze nur richtig, wenn ich die Taste gedrückt halte. Dann wird es ab dem zweiten richtig angezeigt...
Beim normalen tippen der Taste wird dies nicht registriert...

MFG,
Tombi