Tastenabfrage im Hindergrund?!

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von nawiat.

    Tastenabfrage im Hindergrund?!

    Hallo Leute,

    Ich habe eine Frage ^^
    Ich habe die Sufu schon benutzt aber nicht DAS richtige gefunden :D

    also ich habe diesen Code:

    Quellcode

    1. Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown Me.KeyPreview = True If e.KeyCode = Keys.A Then MsgBox("a wurde gedrückt")



    Es geht auch alles, aber wenn ich die ganze Form Visible = False mache, das sie im Hindergrund sozusagen ist gehen diese Abfragen nicht mehr :/

    Ich möchte an dieser Stelle mal erwähnen das es kein Virus oder sowas in der art ist, obwohl es sich oben so anhört. Ich will ein Tastensound Programm erstellen welches bei drücken von tasten (überall in Windows) einen Ton für die Tasten abgibt ^^

    Okay, kann mir jemand erklären warum die abfragen im hindergrund nicht gehen ?
    Habe ich die Form falsch in den Hindergrund gepackt, gibt es da andere wege, so das sie nicht stört ?
    Oder muss ich was am Code hinzufügen ?

    Danke Leute ^^
    Ich sollte vileicht noch erwähnen das ich eigendlich sehr selten mit VB Programme schreibe :D

    Kannst du mir vileicht erklären was ich mit dem Code anfangen kann und wie ich ihn einbauen kann ? oder besser gesagt wie er überhaupt funktioniert und was er macht :D

    Danke
    Naja, im Groben registriert dir diese Klasse nen systemweiten Hotkey. Da du in VB nicht so fit bist, spar ich mir mal die ausführliche Variante, aber genau deswegen wurde ja auch die fertige Klasse hier reingestellt.
    Die Klasse zu benutzen ist eigentlich ganz leicht. Instanzier dir einfach einen neuen Hotkey, rufe auf diesem dann TryRegister mit dem gewünschten Key aus und ab sofort wird das Pressed-Event ausgelöst, wenn dieser Key gedrückt wird.
    Okay was heißt Instanzieren? XD
    Wo soll ich mir ein Hotkey erstellen ?
    Wie soll ich TryRegister aufrufen und wo ?

    ich weiß, aber so wirklich richtig beschäftigt habe ich mich damit noch nie, ich habe gedacht das geht einfacher :(

    Danke schonmal

    nawiat schrieb:

    ich habe gedacht das geht einfacher
    Das sind effektiv 3 Zeilen Code. :D

    Hier hast du mal ein Beispiel:

    VB.NET-Quellcode

    1. Private key As Hotkey
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    3. key = new Hotkey()
    4. key.TryRegister(Keys.A) 'hier halt den gewünschten Key angeben
    5. AddHandler key.Pressed, AddressOf A_Pressed
    6. End Sub
    7. Private Sub A_Pressed(sender As Object, e As EventArgs)
    8. 'der Code hier wird ausgeführt, wenn der Key gedrückt wurde
    9. End Sub
    Die Hotkey-Klasse aus dem verlinkten Thread muss sich natürlich in deinem Projekt befinden.
    Bei mir steht hier im Code das "Hotkey" unterstreichen, also die zweie die drinnen sind

    VB.NET-Quellcode

    1. Private key As Hotkey
    2. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    3. key = New Hotkey() key.TryRegister(Keys.NumPad0) 'hier halt den gewünschten Key angeben AddHandler key.Pressed, AddressOf A_Pressed
    4. End Sub
    5. Private Sub A_Pressed(ByVal sender As Object, ByVal e As EventArgs) 'der Code hier wird ausgeführt, wenn der Key gedrückt wurde End Sub


    da steht unten
    "Type "Hotkey" is not defined"

    :( ich glaub das ist zu schwer :D
    Nagut wenn es noch jemand lesen sollte, wie kann ich hier sagen:


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

    key = New Hotkey()
    key.TryRegister(Keys.A)
    AddHandler key.Pressed, AddressOf A_Pressed

    End Sub

    Das er nicht nur A dort nehmen soll sondern a-z das heißt bei allen Buchstaben das selbe unternimmt, in diesen Falle erstmal eine MSgBox ausgeben zu lassen ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nawiat“ ()