Tastatur systemweit überwachen

    • VB6

    Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von tuvok.

      Tastatur systemweit überwachen

      Wie kann ich systemweit abfragen, welche Tasten gerade gedrückt werden?

      Das wird mit der GetAsyncKeyState-API realisiert.
      Hier gibt es ein ausführliches Beispiel.

      Beispiel für Strg+Enter:

      Visual Basic-Quellcode

      1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
      2. Private Sub Timer1_Timer()
      3. if CompKey(vbKeyControl) and CompKey(vbKeyReturn) Then MsgBox "Strg+Enter gedrückt!"
      4. End Sub
      5. Private Function CompKey(KCode As Long) As Boolean
      6. Dim Result As Integer
      7. Result = GetAsyncKeyState(KCode)
      8. CompKey = (Result = -32767)
      9. End Function



      Keywords: Visual Basic, VB 6, Systemweit, Tastatur überwachen, Tasten auslesen, gedrückt, Maus Click, Klick auslesen, Maustaste 1-5, Function, Funktion, CompKey, API, GetAsyncKeyState
      Gruß, Agent Smith 8-)

      activeFlags = (lazy OR weary)

      Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Mad Andy“ ()

      Mit der GetAsyncKey-API lassen sich auch die Maustasten 1-5 abrufen.
      Die Keycodes für linke und rechte Maustaste sind 1 und 2, für Mausrad 4 und für Taste 4 und 5 sind die Keycodes 5 und 6.
      Was mit Keycode 3 ist weiß ich nicht. Möglicherweise ist der für mittlere Maustaste ohne Mausrad.


      mfG Andy

      Globale HotKeys in VB.net

      Wer für seine VB.net Anwendung eine systemweite Tastenkombination wie z.B. Strg+Alt+X einbauen will, kann sich folgender Klasse bedienen:
      Globale HotKeys (Tastenkombinationen)
      Gruß, Agent Smith 8-)

      activeFlags = (lazy OR weary)

      Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
      Hallo,
      ich steh gerade auf dem Schlauch ..
      Ich versuche den Code gerade für mein vb.net 2010 express zu gewinnen .. und frickel gerade ein wenig rum .. aber bekomme es nicht hin ..

      Ich möchte, dass er auf F1 und F5 im minimierten Zustand reagiert ohne STRG oder ALT

      Wenn das Form offen ist tut er das ganze auch,

      Visual Basic-Quellcode

      1. Private Sub Annahme_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
      2. If e.KeyCode = Keys.F1 Then
      3. Dim mW As New StreamWriter("D:\DigitaleAnzeige.txt", False)
      4. mW.WriteLine("F1")
      5. mW.Close()
      6. ElseIf e.KeyCode = Keys.F5 Then
      7. Dim mW As New StreamWriter("D:\DigitaleAnzeige.txt", False)
      8. mW.WriteLine("F5")
      9. mW.Close()
      10. End If
      11. End Sub


      nur mit dem Code oben habe ich irgendwie ein Problem..
      Das Key_Down Event funktioniert ja auch nur wenn die Form den Focus hat. Allerdings Frage ich mich wieso du das so machst? Du schreibst im richtigen Thread "Tastatur Systemweit abfragen" jedoch nutzt du den Code "Tastatur nur im Programm abfragen" wieso? Wieso nutzt du nicht den Code der hier angeboten wird?