That is the thing, I don't want to give the background program focus. I want to send key/mouse input to a background program without activating it or giving it focus. (i.e. effectively have multiple activated foreground windows with individual input [not message] queues). Notice that SendInput in Win32 does not allow you to specify the handle of the eindow receiving input, it alway goes to the activated window (one with focus). If I am actually wrong about this, then great :)