Link to home
Start Free TrialLog in
Avatar of Line One
Line One

asked on

Arduino - sending keystrokes from virtual keyboard in computer A to computer B as if local

I am wondering if somebody who had built a few Arduino projects would be able to tell me whether it would be possible to do the following with Arduino - perhaps with two Arduinos. What I want is to have the following:

a virtual full Qwerty keyboard program in computer A

I type on this keyboard and the 'typing' is piped out of my computer via Ethernet preferably (though if this can only be done with another type of media/protocol I will be happy to go along)

at the other end of the Ethernet - (or other media) - the keystrokes I have typed in are accepted and processed as if they were of local origin

Example:

in the virtual keyboard on computer A I press F5
computer B responds just as if had press F5 on a local keyboard

(Note that I accept the possibility that F5 at the time I press it may mean nothing to the software running on computer B - the assumption is that it will mean something because I have software in computer 2 that will respond to F5 though it may not respond to F6. All that is a different issue - at this point I just want it to be that if F5 typed locally would have done something the redirected F5 from the remote computers virtual keyboard would accomplish the same end.)  

I understand that I may need 2 Arduinos for this - one at the sending end to prep the keystrokes for transmission via Ethernet/TCP IP and another at the other end to 'convert' to 'local keyboard input'.  

If in fact this has already been done/a prototype exists that could be harnessed for this purpose a link would be appreciated.
Avatar of David
David
Flag of United States of America image

I'm not getting this. Since computer A does nothing but pump the strokes to computer B, then why not just plug the keyboard into computer B to begin with?  What added value is computer A supplying that you even need it?
I'm not getting this either. I don't see what the role of the Arduino is in what you are doing? You just have two computers communicating with each other... What's the Arduino for?
Friendly suggestion... Tell us the problem, and let us experts suggest how to implement a solution.  You're hung up on a solution that makes no sense for any type of problem other than illegally hacking keystrokes to steal data

(Which I doubt you are trying to do)
Avatar of Line One
Line One

ASKER

I am not trying to hack anything.  Are any of you Arduino programmers?
I've got Arduino's, RPi's, and even a few cubieboards.   I've designed and shipped several commercial products based on them.   Why?

What exactly are you trying to do.  If this is some sort of secret project that needs to be under NDA, and you are puposely not revealing details, then fine.

But your previous set of questions and this manifestation of the same question still makes no sense the way you keep asking it.  Once computer A has the keystroke in ram then it is free to send it over whatever medium you want.    This can be done with a terminal emulator or a socket program or one that uses an IR transceiver or even RS232.
dlethe:

"Once computer A has the keystroke in ram then it is free to send it over whatever medium you want.    This can be done with a terminal emulator or a socket program or one that uses an IR transceiver or even RS232. "

Are you saying that if I have a physical keyboard and I press a key on it, I can somehow retain the  keystroke in RAM and then pipe/redirect that keystroke via Ethernet to another computer so I actually don't need a virtual keyboard to do this?  If so what kind  of programming would be required to do that? Some specific language?

As far as 'why', it's related to my experience with midi.  With midi you can send a midi signal from one midi device to one or more other midi devices to make them do certain functions in parallel or, in fact, the same midi signal may be interpreted in slightly different ways by the devices being sent to - e.g. one gets the signal and plays C on the harp, the other plays C on the sax. I think industrial programs work similarly - somebody at one screen controls various remote 'machines' that do different tasks. So I am curious whether this functionality may be available with PC's and Ethernet -  - can I send keystrokes from one computer to a distant computer so it looks to the running programs on that remote computer as if they were local and if the keystrokes are in proper context to the current focus of that remote computer they will do whatever they would have done had they pressed locally. So for instance the remote computer is booting up and I press F2 on my computer the remote computer would go into the BIOS assuming F2 was the keystroke that got into the BIOS on the remote computer.   Ultimately I may want to send a set of keyboard strokes to the remote computer - a macro of sorts - that would perform some specific set of tasks on a dedicated custom program on that remote computer. This point of the inquiry is  really a matter of knowing whether something is doable and then knowing it is finding uses for it - perhaps not immediately but at some point an idea might strike or a need might arise.
Still responding?
ASKER CERTIFIED SOLUTION
Avatar of David
David
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks. I will look into that.