My problem is more complex than that.

I don't want to redirect raw data from one application to another. What I need is to write an application that writes to the keyboard buffer so that I don't have to explicitly pipe two apps.

The problem is this. I'm developing a program that will be used along a number of unrelated programs. The idea is to have my application running as a process in background and when something happens it will write to the keyboard buffer and the application that has the focus will catch the keyboard input. For instance an input box of an app will catch the keyboard input of the other. The pipes would only solve my problem if:

1) I would code both applications to pipe them together as father\son (not the case)
2) If the second application would just be a simple application that would receive something and handle it (which wont be in most cases).

I was looking at writing an ISR, but that seems like an overkill to me!

Any ideas everyone?!