[VB-Net] Hotkey reagiert mehrfach!

11/04/2011 23:14 Benhero#1
Hallo Com,

Folgendes Problem...

Ich benutze folgenden Code:
Code:
Private Sub hotkey_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles hotkey.Tick
	If GetAsyncKeyState(Keys.NumPad1) Then
		MsgBox("1 wurde gedrückt!")
	ElseIf GetAsyncKeyState(Keys.NumPad2) Then
		MsgBox("2 wurde gedrückt!")
	ElseIf GetAsyncKeyState(Keys.NumPad3) Then
		MsgBox("3 wurde gedrückt!")
	ElseIf GetAsyncKeyState(Keys.NumPad4) Then
		MsgBox("4 wurde gedrückt!")
	End If
End Sub
Soweit Funktioniert auch alles über einen Timer mit dem Interval von 100 MS...
Nur ist das Problem das er die Taste mehrfach erkennt! d.h. ich drücke 1x Drauf und erkennt das ich die taste 2x Gedrückt hätte bzw. die Msgbox wird mehrfach angezeigt.

Hat einer eine Idee wie ich verhindere das es mehrfach angezeigt/registiert wird?

Mfg. Benhero
11/04/2011 23:30 SuperOwnBash#2
PHP Code:
Private Sub hotkey_Tick(ByVal sender As ObjectByVal e As System.EventArgsHandles hotkey.Tick
    
If GetAsyncKeyState(Keys.NumPad1Then
        MsgBox
("1 wurde gedrückt!")
    ElseIf
        
then

 
'und so weiter..
End Sub 
11/04/2011 23:35 Benhero#3
So ist es doch gerade O.o
11/04/2011 23:50 SuperOwnBash#4
ich lad gleich ein projekt hoch ..

EDIT: oO oh shiitt. das dauert wohl noch :P

EDIT2: ich denke dieses projekt wird dier weiterhelfen können, lösung ist zwar nicht elegant, aber du kommst weiter (und bringt dich auf eine neue idee..)

geschrieben in Visual Basic 2010 Express Edtion
11/04/2011 23:52 Benhero#5
In Ordnung... an alle anderen Wenn ihr eine Andere Methode kennt einfach Posten!

Mfg. benhero
11/05/2011 00:03 warfley#6
natürlich reagiert der mehrfach da das 1. kein hotkey ist, dafür gibts bessre apis
und 2. überprüft ob die taste gedrückt ist, und das ist sie für mehrere millisek.

für einen hotkey überprüfe nach einem keyup, das heisst key war gedrückt und im tick später nicht mehr
11/05/2011 00:06 Benhero#7
Und wie überprüfe ich in dem fall auf Keyup bei einem Tick?

Mfg. Benhero
11/05/2011 13:57 Kraizy​#8
[Only registered and activated users can see links. Click Here To Register...]
11/05/2011 13:58 warfley#9
Verwende doch register hotkey aus der win api
11/05/2011 14:08 Kraizy​#10
Quote:
Originally Posted by warfley View Post
Verwende doch register hotkey aus der win api
Hab ich doch grad geschrieben^^
11/05/2011 18:04 warfley#11
jo habs ned gesehen ;)