4

I have a few bare-bones systems running legacy software on creaking hardware. I want to be able to automate a lot of tasks by using auto hotkey scripts for tasks that currently, must be performed manually. I really don't want to install any software on these machines, and in some cases can't (as they are already maxed out on resources, or running Linux builds, or running weird stripped down Windows versions from the stone age)

I need a solution whereby I can receive keystrokes on a machine in real time without installing any software on it. However, requiring drivers or software on the machine sending keystrokes is no problem.

That's the problem I need to solve. Given the restriction on the receiving machine, I can only imagine that a solution might be along the lines of the input being via something like a Bluetooth dongle or USB receiver that registers as a keyboard, but is actually receiving keystrokes originating on another computer. If anyone knows if such a piece of hardware exists, could you post below? Or alternatively, any other solution that meets the goals.

Some_Guy
  • 794

5 Answers5

5

You can use a remote IP-based KVM to generate keystrokes on another machine in real time.

Simply connect up the KVM's keyboard (and optionally the video and mouse) to the computer you want to send remote keystrokes to.

You then connect to the IP on the KVM via your web browser or the provided native system app, and send whatever keystrokes you wish.

One such product is Tripp Lite's Server Remote Control, External KVM over IP and another is the Lantronix Spider KVM

Alternatively, you can rebuild a DIY version of one of these with only keyboard support (rather than keyboard, video, and mouse support) using a Teensy USB Dev Board connected to a WIZ712MJ ethernet module with the WIZ812 Ethernet Adaptor Kit

At that point you could use the Teensy's ethernet and keyboard libraries to write a small program that spawns a server using Server.begin(), waits for a connection, and then has an infinite while loop with something like the following content to create a one-way network echo server:

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

You'll likely want to flesh that out with some error checking and the like, but it should work as a skeleton.

ThatOneDude
  • 2,774
  • 17
  • 18
4

Here is a possible solution, some assembly required.

You can use a micro controller to receive keystrokes via network and transfer them to the computer it is connected to. One possible option would be Arduino platform and it's keyboard library as it may be simpler than making the hardware and libraries yourself. You will also need DIY software to send the keystrokes and, in case of Arduino it can be written in its IDE(simplified JAVA environment) . There are other platforms out there and most can be scaled down in production environment if you find this to be too big or expensive to deploy (as you may need more than one).

3

This is far from an out-of-the-box solution, but you might be able to adapt something like the Teensy USB to accomplish this mission. I would envision configuring the Teensy USB to appear as a keyboard, then loading a program onto the Teensy USB that

  • receives keystrokes over a serial connection wired to its I/O pins and
  • sends those keystrokes to the target machine over its USB connection.

I personally wired one to a footpedal and programmed it to send the 's' keystroke when I stepped on the pedal, but that project was much much simpler than what you would need.

0

It would be a bit odd that a keyboard would receive input. I think I understand a little better your angle of sending a keystroke sequence from a laptop. The bluetooth receiver (USB dongle) does the receiving from a bluetooth keyboard. So forget the keyboard since you have a laptop sending instead. There might be a bluetooth receiver out there that is general purpose and will let you pair and receive keyboard data from some other bluetooth device. Keyboard data is part of the bluetooth profile for HID ("Human Interface Device Profile") so at least that's covered. But a receiver that comes with a Logitech keyboard for instance might not allow receiving from anything but a Logitech keyboard. Searching Amazon for "bluetooth data receiver usb" brings up a few that might work like Mediastic's.

Do you already have a way you plan to send the data out from the laptop via bluetooth? You asked about receiving, but not sending. There are a couple interesting questions already about this -

-1

Perfectly possible. In fact its the exact vector attack behind the thing called BAD USB.

You can read in detail about it in here.

Basically, its about changing(reprogramming) USB stick from storage device to another HUD device. It's not that easy to do but if you have the time and skills - yes, it's possible. Certainly not easy though.

A BadUSB device may even have replaced the computer’s BIOS – again by emulating a keyboard and unlocking a hidden file on the USB thumb drive.

mnmnc
  • 4,257