Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0130: Erkennen ob mehrere Tasten gleichzeitig gedrückt sind

 von 

Beschreibung 

Soviel ich weiß ist es ausgehend von der Struktur der Keyboard-Matrix nicht möglich zu erkennen ob mehr als eine Taste gleichzeitig betätigt wurde. (Strg, Alt, Shift etc. bilden da natürlich Ausnahmen). Wenn aber davon ausgegangen werden kann, daß es eigentlich fast umöglich ist zwei Tasten wirklich gleichzeitig zu drücken, läßt sich mit dem kleinen hier gezeigten Trick Abhilfe schaffen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,05 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

Dim KeyMem$, LastKey&

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode <> LastKey Then KeyMem = KeyMem & Chr$(KeyCode)
  LastKey = KeyCode
  
  Label1.Caption = KeyMem
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  Dim Pos%
   Pos = InStr(1, KeyMem, Chr$(KeyCode))
   KeyMem = Left$(KeyMem, Pos - 1) & Mid$(KeyMem, Pos + 1)
   
   If KeyCode = LastKey Then LastKey = -1
   Label1.Caption = KeyMem
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Balduin am 23.06.2005 um 14:52

Bei mir werden immer nur drei Buchstaben angezeigt!

Kommentar von Chb am 29.12.2003 um 05:42

@Mario:
Das müsste eigentlich so gehen:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyB Then Call Prozedur
End Sub

Private Sub Prozedur()
Msgbox "Die Taste B wurde gedrückt.", vbInformation
End Sub

Kommentar von Mario am 23.03.2003 um 19:22

Wie kann ich über die Tastatur mit einem Buchstaben eine Sub Prozedur aufrufen?

Kommentar von Max am 07.04.2001 um 12:09

Kan ich irgendwie machen, dass man gleich 2 Tasten drücken kann etwa so:
If Keycode = ** and Keycode = **
Geht das irgendwie?