Tastendruck abfragen

Hallo Experten!

Ich habs hinbekommen, einen Tastendruck auf einem Formular abzufragen, jetzt aber mein Problem:

Wie kann ich den Tastendruck systemweit abfragen?
Oder wenn das Formular unsichtbar ist?

Vielen Dank im Vorraus

Rodario

Hallo Rodario,

Wie kann ich den Tastendruck systemweit abfragen?
Oder wenn das Formular unsichtbar ist?

dann bist Du auf GetAsyncKeystate angewiesen. Den Code für die Maus hast Du ja schon, die Tasten sind dann eben andere ‚Nummern‘, meist mit dem Ascii gleich. (A = 65)

Gruß, Rainer

Hallo Reiner!

Vielen Dank für die Info!
Wo finde ich eine Liste der Nummern für die Tasten?

Schon mal Danke

Rodario

Hallo Reiner!

Ich habe bei Wikipedia eine Tabelle gefunden, bei denen manche Zahlen klappen (z.B. Tab) aber viele (z.B. a) nicht!

Woran kann das liegen?

Gruß Rodario

Hallo Rodario,

Vielen Dank für die Info!
Wo finde ich eine Liste der Nummern für die Tasten?

keine Ahnung, ich habe keine. Aber die sind mit einer Schleife ja leicht zu ermitteln.

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form\_Load()
 Timer1.Interval = 100
 Timer1.Enabled = True
End Sub

Private Sub Timer1\_Timer()
 Dim i As Integer
 Me.Caption = 0
 For i = 1 To 255
 If GetAsyncKeyState(i) 0 Then
 Me.Caption = i
 End If
 Next
End Sub

laufen lassen, eine Taste drücken, im Fenstertitel steht der Tastencode.

Gruß, Rainer

Hallo Rodario,

eigentlich ganz einfach. Schreib Dir dafür ein kleines Tool.
Einfach eine Standard Exe erstellen.

Dazu folgenden Code

Option Explicit

Private Sub Form\_KeyPress(KeyAscii As Integer)
 MsgBox "Taste: " & Chr(KeyAscii) & " wurde gedrueckt." & vbNewLine & "Der Ascii Code dazu lautet:" & KeyAscii
End Sub

Private Sub Form\_Load()
Me.KeyPreview = True
End Sub

Willst du dazu noch den Status von Shift, Alt und STRG wissen, so mache dich dem KeyDown Ereignis zu nutze.

MfG Alex

Hallo Rodario,

Ich habe bei Wikipedia eine Tabelle gefunden, bei denen manche
Zahlen klappen (z.B. Tab) aber viele (z.B. a) nicht!

Woran kann das liegen?

die Tastencodes sind dem Ascii nur ähnlich. Statt ‚a‘ musst Du ‚A‘ nehmen. Die Shifttaste musst Du einzeln auslesen.
(Links 160, rechts 161.)

Gruss, Rainer

Hallo Leute!

Der Code von Anno funktioniert leifer nicht, wenn ich das Formular nicht im Vordergrund ist.

Gibt es dafür eine Lösung?

Gruß Rodario

Hallo,

Der Code von Anno funktioniert leifer nicht, wenn ich das
Formular nicht im Vordergrund ist.

Gibt es dafür eine Lösung?

ich kenne keine. Mit VB-Bordmitteln funktioniert das nur, wenn die Form aktiv ist.
Wenn Du das Fenster minimieren willst und dann auf Tasten reagieren geht das so viel ich weiß nur mit der API.

Gruß, Rainer

Schade…

Aber Danke an euch alle!

Viele Grüße

Rodario

Hallo Rodario,

Schade…

was heißt schade? Was spricht gegen die API? Den Code hast Du doch …

Gruß, Rainer

Hallo Rodario,

der Code war nur dazu da, um dir die Ascii Codes anzuzeigen :wink:
Sprich, du möchtest wissen welchen Code die Taste „a“ hat, so starte einfach das Tool, druecke das „a“ und schon hast du den Code :smile:
Ist nur zu Hilfszwecken gedacht :smile:

Möchtest du die Tasten Systemweit abfragen, so bleibt dir nur die API( wo dir Rainer schon eine Anleitung geschrieben hat) zur Verfügung :smile:

MfG Alex