What do I need to do so my code can influence other programs?

Jul 11, 2013 at 10:58pm
Hello,

How can I make my program influence other's activity/read other's data?
I'm really curious:)

Some example programs to show you what I mean:

Programs that check screen, and react, like:
- If "poke" appears on some screen section, program will "click" it.("facebook automatic poke" ;-) )

Automatic programs that do something, without any conditions
- Refresh site in firefox every 5 seconds

Programs that check for other programs' activity and react:
- If code::blocks started, open foobar and start playing music :)

Programs that send input to programs and react basing on their outputs:
- bots
- parental control programs

Basically, I would like to know how can I get have stuff like this done. It would be also great if there is some article/source saying how hacks/viruses influence other programs, and how can I detect it and fight it(like, fighting bots in games).

I think that's it. Sorry if this question has been already asked. I'm hoping for nice answers, and thank you all in advance :)

PS. I forgot what I originally had in mind - programs that allow to check for memory leaks got me wondering. So these also count to list. Thanks again :)
Last edited on Jul 12, 2013 at 8:54am
Jul 12, 2013 at 1:40pm
If you're going to write bot program simulating real user you probably need:

- To read whole screen's (or selected window's) content look at BitBlt.

- To send fake input (eg. mouse click, keypress) to other windows applications look at: FindWindow, SendMessage.

If You need to go deeper (i.e. do more than real user see/do) you may be interested also in:

- To read/write memory of another processes please look at:
ReadProcessMemory, WriteProcessMemory, VirtualProtect.

- To run code in context of another process look at: CreateRemoteThread.

- To catch window messages from other processes look at SetWindowsHookEx.

All above funcions are part of WINAPI and are documented on msdn.

Last edited on Jul 12, 2013 at 2:02pm
Jul 12, 2013 at 2:01pm
Thank you very much for your answer! I will check it out :)
Topic archived. No new replies allowed.