Tastatureingabe nicht über software sondern über hardware simulieren

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von rahu2000.

    Tastatureingabe nicht über software sondern über hardware simulieren

    Hallo zusammen,

    Seit zwei tagen versuch ich nun eine Lösung für folgendes Problem zu finden:
    ich hab ein programm geschrieben, das alle 2 sekunden die tastenkombination Strg+x simuliert:

    VB.NET-Quellcode

    1. ...
    2. SendKeys.Send("^x")
    3. ...


    Das funktioniert in fast allen programmen wie z.B. Notepad,Word... aber eben nur fast :( , denn ich möchte, diese Tastenkobination auch an ein spiel (direct x) senden. Das funktioniert aber nicht. Nach ewigem googlen hab ich dann folgenden code gefunden, mit dem man die kombination an ein bestimmtes programm senden können soll:

    VB.NET-Quellcode

    1. ' benötigte API-Deklaration
    2. Private Declare Function FindWindow Lib "user32" _
    3. Alias "FindWindowA" ( _
    4. ByVal lpClassName As String, _
    5. ByVal lpWindowName As String) As Long
    6. ' Fensterhandle anhand des Fenstertitels ermitteln
    7. Private Sub Fenster_Finden()
    8. Dim lhWnd As Long
    9. Dim sTitle As String
    10. sTitle = "Exakter Fenstertitel"
    11. lhWnd = FindWindow(vbNullString, sTitle)
    12. End Sub

    Das funktioniert auch bei allen programmen nur eben nicht bei dem computerspiel :|
    deshalb zu meinem neusten Problem: Wie kann ich nun die tastenkombination nicht über die software sondern über die "hardware" simuliern
    ich hoffe ihr wisst was ich meine und danke für jede antwort :) ;)

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

    wenn ich mich nicht täusche, werden die gesamten eingaben über hardware doch zuerst an den bios geschickt und dort für die ganzen programme "verständlicher" gemacht...... insofehrn wäre dort dein "angriffspunkt" ;)

    ........is aber nur grob geraten, kann dir leider nicht mehr infos geben ;)
    - viel glück :)
    wenn ich mich nicht täusche, werden die gesamten eingaben über hardware doch zuerst an den bios geschickt und dort für die ganzen programme "verständlicher" gemacht...... insofehrn wäre dort dein "angriffspunkt" ;)

    Nein, das BIOS sagt gar nischts mehr. Erst wenn wir wieder die Reichsmark haben, die BÜSO Frau Reichskaiserin ist und alle Computer wieder mit 16 Bit Betriebssystemen benutzt werden.

    Du kannst alternativ zu dem erwähnten PS/2 Adapter mit einem Hammer auf die Tastatur schlagen.
    @beate:
    Danke für den tipp mit dem hammer :D :D :D
    @renati:
    nein ich meine keinen microcontroller sondern ich hab gehört, dass die tastatur die befehle an ein "Programm" sendet und dass andere programme das davon auslesen.
    mit der sendkeys-funktion simuliere ich ein en tastendruck in diesem "Programm".
    direct x spiele (hab ich gehört) jedoch greifen das direkt von der tastatur ab also von der hardware und ich möchte nun ein programm schreiben, das den tastendruck "vor" dem "Programm" simuliert, sodass die direct x anwendung das auch noch "mitbekommt"
    ich hab keine ahnung ob das geht habe deshalb dieses thema eröffnet :)

    PS: ich entschuldige mich für die Anführungszeichen :D :D
    Nein, Hardwaremäßig geht es nicht falls du die Tastatur nicht mechanisch drückst Der Tastaturcontroller teilt dem Kernel per Interrupt mit, dass er etwas aus dem Tastaturpuffer lesen kann. Deshalb wäre die niedrigste Möglichkeit Tastaturereignisse einzuschleusen der Weg direkt über den Kernel (und da kannst du VB vergessen).