Frage Senden Sie Echtzeit-Tastatureingaben an eine Maschine von einer externen Quelle, ohne Software auf dieser Maschine zu installieren? Vielleicht ein USB-Dongle, der sich als Tastatur registriert?


Ich habe ein paar Barebone-Systeme, auf denen Legacy-Software auf knarrender Hardware läuft. Ich möchte in der Lage sein, eine Vielzahl von Aufgaben zu automatisieren, indem ich automatische Hotkey-Skripte für Aufgaben verwende, die derzeit manuell ausgeführt werden müssen. Ich möchte wirklich keine Software auf diesen Rechnern installieren, und in einigen Fällen nicht (da sie bereits auf Ressourcen ausgereizt sind oder Linux-Builds laufen oder merkwürdige abgespeckte Windows-Versionen ab der Steinzeit laufen)

Ich brauche eine Lösung, mit der ich Tastenanschläge auf einer Maschine in Echtzeit empfangen kann ohne Installation von Software darauf. Es ist jedoch kein Problem, dass Treiber oder Software auf dem Computer Tastenanschläge senden.

Das ist das Problem, das ich lösen muss. Angesichts der Beschränkung auf dem empfangenden Rechner kann ich mir nur vorstellen, dass eine Lösung in Richtung der Eingabe über einen Bluetooth-Dongle oder USB-Empfänger, der sich als Tastatur registriert, empfangen wird, aber tatsächlich Tastenanschläge von einem anderen Computer empfängt. Wenn jemand weiß, ob solch ein Stück Hardware existiert, könntest du unten posten? Oder alternativ jede andere Lösung, die die Ziele erfüllt.


4
2017-07-07 10:45


Ursprung


Was ist mit einer Bluetooth-Tastatur und einem Empfänger? Vermeidest du das? Sie müssen nur einen Treiber für einen von denen installieren. - Datarecovery.com MK
Können Sie eine Bluetooth-Tastatur erhalten, die externe Tastenanschläge von einem zweiten Gerät akzeptiert? - Some_Guy
Ich habe eine Antwort gepostet, weil es zu lang geworden ist - Datarecovery.com MK
BTW, ich war während der Computer Steinzeit (vor Bluetooth) in der Schule, und ein Forscher benötigt im Wesentlichen, was Sie beschreiben. Er baute eine Plattform, die auf einer Tastatur lag, mit einem Magnetschalter für jede Taste. Er schickte dann die Schreibanweisungen von einem anderen Computer an sein Gerät. Ich schätze, das wäre keine praktische Lösung für Sie. - fixer1234
Ich schätze die Kommentare, die mich auffordern, eine Antwort zu erstellen, aber ich wollte eine Lösung säen, ohne die Zeit zu investieren, eine gute Antwort zu erstellen. Ich bin mir sicher, dass Sie zustimmen werden, dass ein Kommentar, der Sie (und andere, die vielleicht bereit sind, eine vollständigere Antwort zu schreiben) in eine praktikable Richtung weist, besser ist als nichts. Persönlich könnte ich ein Ethernet-Modul verbinden und es zu einem Echo-Client über das Netzwerk anstatt serielle oder Bluetooth werden, wie einige andere vorschlagen, aber so oder so sollte es Ihr Problem lösen. - ssnobody


Antworten:


Sie können einen Remote-IP-basierten KVM verwenden, um Tastenanschläge auf einem anderen Computer in Echtzeit zu generieren.

Verbinden Sie einfach die Tastatur des KVM (und optional das Video und die Maus) mit dem Computer, an den Sie Tastenanschläge senden möchten.

Dann verbinden Sie sich über Ihren Webbrowser oder die mitgelieferte native System-App mit der IP auf der KVM und senden die gewünschten Tastenanschläge.

Ein solches Produkt ist Tripp Lite Server Remote Control, externe KVM über IP und ein anderer ist der Lantronix Spinne KVM

Alternativ können Sie eine DIY-Version von einer dieser Funktionen mit nur Tastaturunterstützung (anstelle von Tastatur-, Video- und Mausunterstützung) mithilfe von a erstellen Teensy USB Entwicklungsboard verbunden mit a WIZ712MJ Ethernet-Modul mit dem WIZ812 Ethernet-Adapterkit

An diesem Punkt könntest du die Teensys benutzen Ethernet und Tastatur Bibliotheken, um ein kleines Programm zu schreiben, mit dem ein Server erzeugt wird Server.begin(), wartet auf eine Verbindung und hat dann eine unendliche while-Schleife mit etwas wie dem folgenden Inhalt, um einen unidirektionalen Netzwerk-Echo-Server zu erstellen:

if (myclient.available()) {
    Keyboard.print(myclient.read());
}

Sie werden das wahrscheinlich mit einer Fehlerüberprüfung und ähnlichem herausfinden wollen, aber es sollte als ein Skelett funktionieren.


5
2017-07-20 03:58



Das sieht zwar nach einer guten Lösung aus, aber meine Sorge wäre hier, wie schwierig die Verbindung zu einem IP-basierten KVM wäre. Die meiste Zeit beschäftige ich mich mit einer Hardware-Maschine, die keine Internet-Fähigkeit oder gar keine Netzwerkverbindung hat. Ich meine, es gibt einen Ethernet-Anschluss an der Maschine, aber ob es für irgendetwas gut ist? ... - Some_Guy
Außerdem denke ich, dass dies nicht die Anforderung erfüllt, keine Software auf der Folgemaschine zu installieren - Some_Guy
@Some_Guy: Hardware-KVM-Geräte benötigen keine Software auf der Follower-Maschine. Sie erscheinen als Hardware-K-, V- und M-Geräte. Wenn Sie eine Tastatur als "Software installieren" an eine Maschine anschließen, können Ihre Anforderungen nicht erfüllt werden. Wie genau planen Sie, in Echtzeit Tastenanschläge an den Computer zu senden, wenn keine Netzwerkverbindung besteht? Wir haben noch keine Subspace Transceiver ... - qasdfdsaq
Genau richtig. Der Anführer wird über das Netzwerk mit dem KVM-Gerät verbunden und das KVM-Gerät erscheint als eine Tastatur (sowohl USB- als auch PS2-Versionen sind verfügbar) für den Follower. Also sein Führer --ethernet-> kvm --USB-> Anhänger - ssnobody
Ich würde hinzufügen, dass je nach KVM-Gerät einige Java-Clients und einige IPMI-Schnittstellen haben. IPMI ist etwas unsicher, aber es ist sehr weit verbreitet und leicht skriptfähig, sogar von einem Mobiltelefon aus. - qasdfdsaq


Hier ist eine mögliche Lösung, einige Montage erforderlich.

Sie können einen Mikrocontroller verwenden, um Tastenanschläge über das Netzwerk zu empfangen und sie an den Computer zu übertragen, mit dem er verbunden ist. Eine mögliche Option wäre Arduino Plattform und es ist Tastatur Bibliothek als einfacher als die Hardware und Bibliotheken selbst zu machen. Sie benötigen auch DIY-Software, um die Tastenanschläge zu senden, und im Fall von Arduino kann es in seiner IDE (vereinfachte JAVA-Umgebung) geschrieben werden. Es gibt noch andere Plattformen, und die meisten können in der Produktionsumgebung verkleinert werden, wenn Sie feststellen, dass dies zu groß oder zu teuer ist (da Sie möglicherweise mehrere benötigen).


4
2017-07-16 08:28



Dies ist ein guter Vorschlag, aber es sieht für mich so aus, als wäre teensy USB wahrscheinlich ein kleines bisschen einfacher (wenn man sich das anschaut) pjrc.com/teensy/td_keyboard.html), und ein bisschen billiger. Allerdings würde ich Ihre Meinung lieben, da ich nicht so viel Erfahrung habe. - Some_Guy
Denkst du, dass es möglich wäre, Echtzeit-Tastenanschläge von einem angeschlossenen Computer zu senden, anstatt dies vorprogrammiert zu tun? - Some_Guy
@Some_Guy Es sieht aus wie eine heruntergekommene Version von Arduino, von der ich gesprochen habe, also sollte es gut gehen. Aber Sie müssen sich von zwei Computern gleichzeitig verbinden, um Echtzeit-Tastenanschläge zu erhalten, und das ist nicht über einen USB-Anschluss möglich. Full-Size Arduino kann vorgefertigte Netzwerk-Shields unterstützen, um Verbindungen zu trennen, zum Beispiel senden Tastatureingaben über das Netzwerk von Ihrem Laptop und weiterleiten an USB zum empfangenden Computer. - Enis P. Aginić
Ja, der Plan war es, über die serielle Schnittstelle zu empfangen und über USB für die Teenager zu gehen - Some_Guy


Dies ist bei weitem nicht eine Out-of-the-Box-Lösung, aber Sie könnten in der Lage sein, etwas wie die Teensy USB um diese Mission zu erfüllen. Ich würde mir vorstellen, den Teensy USB als Tastatur zu konfigurieren und dann ein Programm auf den Teensy USB zu laden

  • empfängt Tastenanschläge über eine serielle Verbindung, die mit seinen E / A-Pins und verdrahtet ist
  • sendet diese Tastenanschläge über die USB-Verbindung an den Zielcomputer.

Ich persönlich habe einen an ein Fußpedal angeschlossen und ihn so programmiert, dass er den "s" -Taster sendet, wenn ich auf das Pedal getreten bin, aber dieses Projekt war viel einfacher als das, was Sie brauchen würden.


3
2017-07-15 15:13



Wenn es etwas leichter ist, scheint dies eine gute Lösung zu sein (aber ich hoffe auf eine leichtere). Ich habe mir vorher einen Arduino-Build angesehen, der schwieriger, teurer und größer aussah, also danke! - Some_Guy
Ich habe kaum Erfahrung im Umgang mit Mikrocontrollern (ich habe vor Jahren ein sehr einfaches Projekt gemacht, bei dem meine Hand die ganze Zeit von einem Buch gehalten wurde). Sagen wir, ich ging mit dem Teeny (sieht sehr gut aus). Würden Sie eine Tastatur direkt mit dem teensy USB mit dem geladenen Programm verbinden, oder durch einen Laptop mit einer geladenen Schnittstelle gehen? Welche Art von Anschlüssen würde ich brauchen? - Some_Guy
Der TeensyUSB ist die Tastatur. Ich würde dann den Laptop über eine serielle Verbindung mit dem TeensyUSB verbinden (einen DB9 an die I / O-Pins des TeensyUSB anlöten und dann den Laptop an diesen DB9 anschließen). Dann verwenden Sie eine Terminal-Software (Kermit?) Auf dem Laptop, um Ihre Zeichen über die serielle Verbindung einzugeben. Das Programm zu schreiben, das auf dem Teensy USB läuft, das die Seriennummer empfängt und Tastenanschläge sendet, wäre nicht trivial, aber es wäre auch kein großes Entwicklungsprojekt. - Mutant Bob
Ich glaube, dass es Bluetooth-Lösungen gibt, die serielle Daten senden / empfangen. BlueSoleil ist eine kommerzielle Software, die es wahrscheinlich tut - manualslib.com/manual/534847/Ivt-Bluesoleil.html?page=49 "Der Bluetooth Serial Port (SPP) bietet einen virtuellen seriellen Anschluss über Bluetooth als Alternative zu einem festverdrahteten seriellen Kabel zwischen einem Computer und einem Gerät. Jedes Programm, das einen seriellen Standardanschluss verwendet, kann den seriellen Bluetooth-Anschluss ohne Änderungen verwenden." bluesoleil.com/bssoftware/BSoftware.aspx  In der Tat möchten Sie vielleicht mit ihnen reden und sehen, was sie über Ihr Projekt sagen. - Datarecovery.com MK
Hi, ich wollte ein anderes Bounty erstellen und es auch dieser Frage zuweisen, aber es scheint, dass ich mein Kopfgeld dafür verdoppeln muss. Ich weiß diese Antwort wirklich zu schätzen, also danke! - Some_Guy


Es wäre ein bisschen komisch, dass eine Tastatur eine Eingabe erhalten würde. Ich denke, ich verstehe ein wenig besser deinen Winkel, eine Tastenfolge von einem Laptop zu senden. Der Bluetooth-Empfänger (USB-Dongle) empfängt von einer Bluetooth-Tastatur. Also vergessen Sie die Tastatur, da Sie stattdessen einen Laptop senden. Möglicherweise gibt es einen Bluetooth-Empfänger, der allgemeine Zwecke erfüllt und Sie Tastaturdaten von einem anderen Bluetooth-Gerät verbinden und empfangen können. Tastaturdaten sind Teil des Bluetooth-Profils für HID ("Human Interface Device Profile"), also ist das zumindest abgedeckt. Ein Empfänger, der beispielsweise mit einer Logitech-Tastatur geliefert wird, kann jedoch möglicherweise nur eine Logitech-Tastatur empfangen. Suche Amazon für "Bluetooth-Daten-Empfänger USB" bringt ein paar, die wie Mediastic funktionieren könnte.

Haben Sie bereits eine Möglichkeit, die Daten per Bluetooth vom Laptop zu senden? Du hast nach dem Empfang gefragt, aber nicht nach dem Senden. Es gibt schon einige interessante Fragen dazu -


0
2017-07-08 16:07



Nun, Sie könnten tatsächlich Bluetooth-Daten von Nicht-Logitech-Geräten mit einem Logitech-Bluetooth-Empfänger empfangen - forums.logitech.com/t5/Keyboards-und-Keyboard-Mic ... - Datarecovery.com MK
Die zweite Kugel verbindet sich mit github.com/lkundrak/btkbdd/blob/master/btkbdd.pod, die zumindest für Linux die gewünschte Lösung zu beschreiben scheint. Die letzte Kugel scheint auch fast ein Duplikat dieser Frage zu sein. +1 - fixer1234


Perfekt möglich. Tatsächlich ist es der genaue Vektor Angriff hinter dem Ding genannt BAD USB.

Sie können im Detail darüber lesen Hier.

Grundsätzlich geht es darum, den USB-Stick vom Speichergerät auf ein anderes HUD-Gerät zu wechseln (umzuprogrammieren). Es ist nicht so einfach zu tun, aber wenn Sie die Zeit und Fähigkeiten haben - ja, es ist möglich. Sicherlich nicht einfach.

Ein BadUSB-Gerät hat möglicherweise sogar das BIOS des Computers ersetzt - erneut durch   Emulieren einer Tastatur und Entsperren einer versteckten Datei auf dem USB-Daumen   Fahrt.


-1
2017-07-15 09:21



Das ist nicht wirklich eine Antwort. Ich weiß, dass es möglich ist, Tastenanschläge zu parodieren, aber ich suche nach einem Gerät, das Tastenanschläge in Echtzeit akzeptiert. - Some_Guy
Dies ist in der Frage nicht klar angegeben. Ich denke jedoch, dass Sie eher meine Lösung verwenden und das USB-Gerät Befehle auf dem Computer ausführen lassen. Diese Befehle können sein: 1. Powershell-Befehl zum Herunterladen von Netcat auf den Computer, 2. Ausführen von Netcat zum Verbinden mit einer bestimmten IP-Adresse des Servers, der auf die Verbindung wartet. 3. Netcat bindet auch die lokale Shell an die Verbindung 4. Der Server, der die Verbindung erhält, führt spezifizierte Skripte / Befehle auf dem verbundenen Computer aus. So können Sie Ihre Aufgabe erledigen. Andere Lösungen werden höchstwahrscheinlich eine Art Installation beinhalten, - mnmnc
Außerdem ist es viel einfacher, das BADUSB-Gerät dazu zu bringen, ein Skript auf den Computer herunterzuladen und es lokal auszuführen, obwohl die Ausführung von Powershell-Skripten auf Windows 7 + -Systemen aus Sicherheitsgründen gesperrt ist, sodass eine umgekehrte Shell-Bindung etwas weniger störend ist. - mnmnc
Ich habe diese Frage (wieder) neu geschrieben. Was denken Sie? - Some_Guy
Ihr Kommentar behandelt nicht den Umfang dieser Frage. Ich muss Tastenanschläge auf einem externen Computer von einer externen Quelle ausführen, ohne Skripts auf diesem Computer auszuführen. Ich schließe mich in einigen Fällen DOS-basierten Systemen an. Der Kernpunkt der Frage ist, zu vermeiden, eine Lösung für jede einzelne Plattform erarbeiten zu müssen. Ich möchte wirklich etwas, das, einmal eingerichtet, gut für alles ist, das die grundlegendsten Eingabetreiber hat, und ich kann es aus der Ferne eingeben. - Some_Guy