Jump to content
Sign in to follow this  
windspire

Using autoit for realtime passthrough of mouse/keyboard events over network

Recommended Posts

windspire

Hi,

I just found out about AutoIT and I think it'll fill a need I have.

I'm not asking for any help or anyone to write it for me, and I've done a search of this forum for network to see what kind of posts have come up (saw some examples of client / server / TCP code that I will probably make use of later).

I AM looking for comments though on the feasibility of using AutoIT for my purpose (described below) and whether I should continue with this line or follow an alternate path (suggestions would be great too).

I would like to build a tool for the duplication of mouse/keyboard commands to remote machines in realtime. That is, when I click on my master machine, I want to send a mouse click event to the remote machine and have it issue a real input event. When I type on the keyboard, I want it to, again, issue a real event. I will probably try to add functionality to map keys on slave machines (ie, receiving a F, but pushing a H into the event queue) and the ability to introduce time delays between receiving and passing on the events.

Anyone care to comment on the performance of autoit over a network in realtime?

This is all going to run over machines on a local lan, not WAN, so hopefully performance will be excellent (on par with Remote Desktop on a local LAN).

Going to start delving into the autoit user manual now. Thanks for reading.

Share this post


Link to post
Share on other sites
Paulie

I am almost positive that what you describe is possible to do in Autoit.

As you said, the TCP functions will definitely be your friend here.

Share this post


Link to post
Share on other sites
qazwsx

depending on what your using it for, it kinda sounds like it might be for it maybe, check out the example scripts someone just made a beta it helper maybe you guys could work together.

Share this post


Link to post
Share on other sites
windspire

Thanks Paulie. I already saw that thread earlier when I did a search for network. The network part looks pretty straight forward. I can just send the keyboard/mouse clicks (with a position) and it's obviously super easy to simulate the actual events on the slave.

BUT, it seems autoit doesn't have a lot of support for 'detecting' events... haha. I was thinking how easy everything looked with the built in function calls to do the events, I forgot that the main purpose of autoit is to execute canned events. Other than _ispressed, I'm not sure how to globally capture KM events. Using ispressed doesn't seem feasible with it's requirement for a key to check against.

Looks like I may have to go back to a basic C/VB program that hooks the keyboard/mouse and do it that way. Just messier I guess..

Thanks for your help though, much appreciated.

Finally found this courtesy of Autoit Smith

http://www.autoitscript.com/forum/index.ph...c=20589&hl=

That should at least get you started.

Share this post


Link to post
Share on other sites
qazwsx

to record events you could look into hook.dll and maybe windows messages?

Share this post


Link to post
Share on other sites
PsaltyDS

Thanks Paulie. I already saw that thread earlier when I did a search for network. The network part looks pretty straight forward. I can just send the keyboard/mouse clicks (with a position) and it's obviously super easy to simulate the actual events on the slave.

BUT, it seems autoit doesn't have a lot of support for 'detecting' events... haha. I was thinking how easy everything looked with the built in function calls to do the events, I forgot that the main purpose of autoit is to execute canned events. Other than _ispressed, I'm not sure how to globally capture KM events. Using ispressed doesn't seem feasible with it's requirement for a key to check against.

Looks like I may have to go back to a basic C/VB program that hooks the keyboard/mouse and do it that way. Just messier I guess..

Thanks for your help though, much appreciated.

Capturing all keyboard events would be a remote key logger, and that type of script will not be found or discussed on this forum.

:)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites
tAKTelapis

By the sounds of it, he is not talking about capturing from 50 computers and bringing back to one, he is doing it in reverse..

Key logging issues aside, I would be interested in seeing what you come up with for the other options.

Though i can see a few restrictions, Screen Resolution for a start. If one computer is at a different res, then passing along mouse click co-ords is going to be a pain.

Not to mention how some applications open in a slightly different spot each time. (CMD is a prime example of this, and it is not the only program that does it)

Share this post


Link to post
Share on other sites
ShaggyStyle

I'm not sure if it can help you, but I think this is what you are looking for:

A program that lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It's intended for users with multiple computers on their desk since each system uses its own monitor(s).

It still exist and is called Synergy (http://synergy2.sourceforge.net/)

Share this post


Link to post
Share on other sites
windspire

That part alone may sound like a key logger, but using autoit for something like that hardly seems the best way to do it (avoid detection, etc).

@tAKTelapis - screen resolutions aren't a problem since it'll be run in our office over the LAN and all machines have the exact same monitors.

@ShaggyStyle - someone recommended that a while back to me, but it's really more of a VNC/remote desktop app and doesn't fulfill the need to send events to multiple computers simutaneously.

Thanks for everyones input. I'm going to do this outside of autoIT, so probably best to let this thread die.

Capturing all keyboard events would be a remote key logger, and that type of script will not be found or discussed on this forum.

:)

Share this post


Link to post
Share on other sites
circlesoffire

I know this is a long shot -- given the date stamp on this thread -- but I'm seeking to perform exactly this action (sending a mouse-click from a controller computer across an LAN network to many computers simultaneously). I create visual effects on computers with mouse-click triggers to advance through my pre-set effect, and usually only work on one computer at a time. But I'm trying to make a whole room (of about fifty computers) change at the same time. I don't need any recording of the events -- just a mouse-click cue transmitted simultaneously across a network. 

Windspire, did you ever make progress on solving for this? If so, I'd love to hear about it. And if anyone has any other suggestions, please let me know!

I've got a mixed space of Macs (OSX 10.7, running Apple Remote Desktop) and PCs (Win 7, running TightVNC). Most are connected directly to an LAN network, though I have two that have to connect wirelessly to my network, so ideally the solution could operate reasonably well via both. My preferred controller computer is a MacBook Pro, though I have access to another PC running Windows 7 I could use too. 

Thanks for any help you can offer... 

Share this post


Link to post
Share on other sites
BrewManNH

windspire hasn't been back here in 6 years, I don't think he/she will be answering any time soon.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×