usb-tastatur simulieren



  • hallo.

    ist es möglich, eine usb-tastatur in dem sinne zu simulieren, dass ich mir ein usb kabel kaufe, dass zwischen zwei rechner (der übersicht halbe A und B genannt) stecke und B für A so aussieht, wie eine tastatur und B an A auch tastaturbefehle senden kann. ziel ist es, dass windows nicht erkennen kann, ob da ein rechner oder eine tastatur dran ist. geht das ohne zu großen aufwand?

    alternativ: kann ich mit c# tastatureingaben so simulieren, dass ein programm nicht unterscheiden kann, ob diese von einer richtigen tastatur kommen oder von einem programm!?

    vielen dank schonmal



  • achso noch eine frage gleich dazu: ist es einem programm möglich mitzubekommen, dass ein anderes programm ein screenshot schießt?



  • Hallo

    Das geht nicht !
    Es ist nicht möglich 2 PC's über USB eins zu eins zu verbinden.
    Da brauchst du Elektronik dazwischen die das umsetzt.



  • du kannst aber eine tastatur an den einen computer anschließen und eine andere tastatur an den anderen computer anschließen. wenn du dann auf die tasten von der einen tastatur an dem einen computer drückst, dann siehst du an dem monitor von den einen computer, was du auf den tasten von der einen tastatur an dem einen computer eingegeben hast. und wenn du auf die tasten von der einen tastatur an dem anderen computer drückst, dann siehst du an dem monitor von den anderen computer, was du auf den tasten von der einen tastatur an dem anderen computer eingegeben hast. wenn du die eine tastatur von dem einen computer an den anderen usb-anschluss von dem anderen computer einsteckst, dann kannst du mit den tasten an der einen oder den tasten an der anderen tastatur auf dem anderen computer was eingeben, was du auch auf dem monitor, der an dem anderen computer angeschlossen ist, lesen kannst. das hat aber den nachteil, dass die eine tastatur, die jetzt zusammen mit der anderen tastatur an dem anderen computer angeschlossen ist, nicht mehr an dem einen computer angeschlossen ist, so dass du, wenn du die tasten auf der einen tastatur, die zusammen mit der anderen tastatur an dem anderen computer angeschlossen ist, drückst, nicht mehr auf dem einen monitor an dem einen computer was siehst, sondern nur auf dem einen monitor, der an dem anderen computer angeschlossen ist. manche machen es auch so, dass sie nicht nur die eine tastatur von dem einen computer an den anderen computer anschließen, sondern auch den einen monitor von dem einen computer an den anderen computer anschließen. dann sieht man auf dem einen computer überhaupt nix mehr. deshalb wäre es ja doof, an den einen computer wieder die andere tastatur von dem anderen computer anzuschließen.



  • ööhm dein beitrag war ein wenig zu verschachtelt. aber ich glaube die grundaussage war, dass du richtige tastaturen anschließen willst. mein ziel ist es aber eine tastatur zu simulieren ohne das das programm, welches gesteuert werden soll mitbekommt, dass es kein echter nutzer sondern nur ein programm ist, welches eingaben macht. da helfen mir echte tastaturen wenig. 🙂



  • Vielleicht mit SendInput()?
    http://msdn.microsoft.com/en-us/library/ms646310.aspx

    Damit kannst Du Tastendrücke und Mausbewegungen simulieren.

    Martin



  • Guten Tag

    Als Selbstbaulösung ist dass durchaus für kleines Geld möglich.

    Auf www.mikrocontroller.net hat einer ein Codebeispiel gepostet, mit der man einen USB-Tastaturcontroller mit einem AVR Mikrocontroller erstellt.
    Da alle größeren AVR Mikrocontroller einen USART (universal serial asynchron receiver transmitter) haben der mit einem RS232 (Serielle- /Com Schnittstelle) kompatibel ist (nur die Signalpegel sind unterschiedlich und es wird ein Pegelwandler benötigt), kann man über RS232 Signale an einen anderen PC schicken der dass dann als USB-Tastatur Eingaben erkennt.
    Wenn man keine RS232 mehr auf dem PC hat, kann man auch einen USB-RS232 Wandler verwenden.

    Übrigens funktioniert soetwas mit der PS2 Schnittstelle viel einfacher, da da eine art SPI (serial peripherie interface) verwendet wird, die dem RS232 Signal sehr änlich ist.



  • kann man nicht einfach systemweit wm_keydown und wm_keyup nachrichten senden?
    an einzelne programme hab ich sowas schon gesendet und wenn das in der richtigen reihenfolge passiert, merkt das programm auch nicht das es keine tastatureingabe war. bei mir hat es damals zumindest funktioniert.
    ich weiß nur nicht ob ich auch noch ein wm_char gesendet hab 🙄



  • klsc schrieb:

    kann man nicht einfach systemweit wm_keydown und wm_keyup nachrichten senden?

    Tu uns das bitte nicht an! 😮

    Verwende bitte stattdessen SendInput(),
    siehe auch "Die Unsitte Tastatureingaben mit WM_KEYDOWN Nachrichten zu simulieren" http://blog.m-ri.de/index.php/2007/12/27/die-unsitte-tastatureingaben-mit-wm_keydown-nachrichten-zu-simulieren/

    Martin



  • ok, entschuldige, wusste ich nicht.
    aber als ich das damals benutzt habe, war das betriebssyste, windows 98. und meines wissens gibt es diese funktion sendinput da noch nicht.

    prinzipiell wollte ich ja nur den denkanstoß in diese richtung leiten, aber danke für deinen tipp, man lernt ja nie aus, vielleicht brauch ich das ja doch noch einmalmal


Anmelden zum Antworten