Taste immer drücken lassen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von doom1995.

    Taste immer drücken lassen

    Hey alle zusammen bin neu hier im Forum,

    ich bin gerade dabei ein programm zu schreiben das die ganze zeit eine bestimmte taste drücken soll. ich möchte aber das wenn man eine andere taste drückt, das die erste taste aufhört zu drücken.
    habe es schon mit einer for schleife probiert aber irgendwie habe ich das problem das ich die taste die ich drücken will nur eine bestimmte anzahl lang gedrückt werden kann.

    Ich bin anfänger nehmts mir bitte nicht übel xD

    bitte um hilfe!!!

    MFG doom

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

    Stichwort GetAsyncKeyState

    Hoffe ich liege richtig ?
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Nein das ist nicht das was ich meine xD

    Ähm ich möchte ein prog schreiben was die ganze zeit wiederholt eine taste drückt. er soll das drücken der taste starten wenn ich auf den button start klicke. wenn ich auf den button stop klicke soll er aufhören die taste zu drücken hoffe ihr habt jetzt verstanden was ich meine :D ich habe irgendwo gelesen das das mit einem timer geht habe das aber nicht so richtig verstanden xD
    Ähm ja das hab ich ja auch gelesen aber ich kenne mich gar nicht mit einem timer usw. aus. wäre nett wenn du mir vlt einen code schicken würdest oder besser wenn du mir z.b erklärst wozu ein timer im allgemeinen gut is und was ein Intervall ist :D. Wie gesagt bin anfänger xD

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. timer1.interval = 1000 ' setzt den Timer auf 1 Sekunde
    3. If Timer1.Enabled = True Then ' Abfrage ob Timer läuft oder nicht
    4. Timer1.stop
    5. Else
    6. timer1.start
    7. End If
    8. End Sub
    9. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    10. My.Computer.Keyboard.SendKeys("A") ' Sendet die Taste A
    11. End Sub


    mfg
    Yonda

    Taste drücken lassen

    Hier ein kleines, Beispiel taste numlock alle paar sek drücken:



    Du muß der Code noch an eigene wünsche anpassen !

    1.Öffne neue projekt
    2.Plaziere auf dein From Timer
    3.Stelle Eingenschaft "Enabled" von Timer1 auf True
    4.Zeit von Timer1 auf 1000 stellen (1s)
    5.Füge der Code in richtige events ein



    Code nicht getestet !

    VB.NET-Quellcode

    1. 'API Deklaration
    2. Private Structure OSVERSIONINFO
    3. Public dwOSVersionInfoSize As Int32
    4. Public dwMajorVersion As Int32
    5. Public dwMinorVersion As Int32
    6. Public dwBuildNumber As Int32
    7. Public dwPlatformId As Int32
    8. End Structure
    9. Private Declare Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Int32
    10. Private Declare Sub keybd_event Lib "user32.dll" (ByRef ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Int32, ByVal dwExtraInfo As Int32)
    11. Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Int32) As Short
    12. Private Declare Function GetKeyboardState Lib "user32.dll" (ByRef pbKeyState As Byte) As Int32
    13. Private Declare Function SetKeyboardState Lib "user32.dll" (ByRef lppbKeyState As Byte) As Int32
    14. Private Const VK_NUMLOCK As Int32 = &H90
    15. '=================================================================
    16. 'Diese Code in Form Load event
    17. Timer1.Start
    18. '==================================================================
    19. '==================================================================
    20. 'Diese Code in Timer Event
    21. Dim Key As Integer
    22. Dim o As OSVERSIONINFO
    23. Key = VK_NUMLOCK
    24. o.dwOSVersionInfoSize = Len(o)
    25. GetVersionEx o
    26. If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then ' Win9x
    27. Dim keys(0 To 255) As Byte
    28. GetKeyboardState keys(1)
    29. If GetKeyState(Key) = 0 Then keys(Key) = 1 Else keys(Key) = 0
    30. SetKeyboardState keys(1) '
    31. ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then ' NT, Win2k, XP ect.
    32. keybd_event Key, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
    33. keybd_event Key, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
    34. End If
    35. '===================================================================

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „SystemUnknow“ ()