Tastendruck im hintergrund überwachen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Danny233223.

    Tastendruck im hintergrund überwachen

    HI Leute, also ich hab mal wieder ein Problem. ICh hab ein Programm geschrieben welches einen bestiummten vorgang automatisieren soll. Es klappt auch so weit aber ich muss immer mit alt + tab zwischen mienem programm und dem wo der vorgang automatisiert werden soll wechseln. Jetzt hab ich mir gedacht, ich mach das einfach mit tastendruck, aber damit der den tastendruck erkennt muss ich in meinem programm sein also immmernoch wechseln. aber hier mien code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    3. Me.KeyPreview = True
    4. End Sub
    5. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    6. If e.Control Then
    7. If e.KeyCode = Keys.F7 Then
    8. Timer1.Interval = TextBox1.Text
    9. Timer1.Start()
    10. End If
    11. End If
    12. If e.Control Then
    13. If e.KeyCode = Keys.F8 Then
    14. Timer1.Stop()
    15. End If
    16. End If
    17. End Sub
    18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    19. Timer1.Interval = TextBox1.Text
    20. Timer1.Start()
    21. End Sub
    22. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    23. SendKeys.Send(" ")
    24. Application.DoEvents()
    25. End Sub
    26. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    27. Timer1.Stop()
    28. End Sub
    29. End Class



    ICH hoffe ihr habt mien Problem verstanden und könnt mir helfen.
    Also ihc hab ma en bisschen gegoogled und hab auch was gefunden, kann es nur niocht so richtig in mienen Code einfügen, weiß nicht wo und außerdem weiß ich da nicht wie ich dem sage dass ich 2 tasten also strg und f8 gedrückt sein müssen, das ganze is en bisschen zu unübersichtlich also mein code steht ja oben und der link wo das steht ist hier: activevb.de/tipps/vb6tipps/tipp0070.html
    Hoffe ihr könnt mir nochmal helfen. THX schonmal im vorraus.


    /EDIT by Myself: Also leute ich hab jetzt ganz viele sachen ausprobiert, ich hab es deklariert und wollt dann it get asynckeystate das ausprobieren, aber selbst wenn die form den focus hat will es ni9cht funktionieren, ich frage mich warum. Hier die codestelle (hatte se auch schon öfters geämdert der timer steht auch auf 1 millisec hatte aber auch schon auf 10 und 100 aber da macht er auch nichts und alles im internet ausprob, vllt kann mir ja jdm helfen. ich hoffe es zumindest:

    VB.NET-Quellcode

    1. Declare Function GetAsyncKeyState Lib "user32" ( _
    2. ByVal vKey As Long) As Integer
    3. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    4. If GetAsyncKeyState(VK_LCONTROL) Then MsgBox("Ctrlgedrückt.")
    5. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „JamesBlond007“ ()

    Ohh das hab ich wohl übersehen, aber damit ging es auch nicht weil am anfang hatte ich es kopiert und dann hab ich hinterher nur noch aus dem kopf getippt. Also huete hat en freund gesagt ich hätte es mal mit VK_... versuvchen sollen aber das ging bei mir nicht weil ich, wie er meinte, die vb express version habe und ich solle es mal mit vb6 probieren. Jetzt mien frage hat er recht damit wenn er sagt, dass das nicht mit vb 2005 express nicht geht??? Bitte hzelft mir ich brauch das
    Natürlich geht das auch mit vb2005...

    VB.NET-Quellcode

    1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
    2. If (GetAsyncKeyState(Keys.Down) = -32767) Or (GetAsyncKeyState(Keys.Down) = -32768) Then
    3. End IF
    Hi danke zwar dass ihr mir helft aber ich hab ma das down durch a ersetzt also so hier:

    VB.NET-Quellcode

    1. If (GetAsyncKeyState(Keys.A) = -32767) Then
    2. MsgBox("A wurde gedrückt!")
    3. End If

    Aber das funktioniert leider auch nicht, ich probiers jetzt aber erstmal bei nem freund mit vb6. Trotzdem danke und wenn irgendjdm vllt noch en hinweiß oder en tipp hat ich würd mich freuen.