carp wrote: Well, that's no help! If it were that simple, I wouldn't be asking about it. It IS that simple. carp wrote: The short answer is that you can not distinguish messages that are a result of physical mouse movements from those that are a result of SendInput or mouse_event calls. They get the same kind of handling by the operating system. Correct - there is only one way for a program to respond to mouse movement, regardless of how the message got there. carp wrote: OK, so how should I send/post messages (instead of using SendInput/mouse_event ) to control the mouse... Use ::SendMessage and create messages with values of WM_USER, WM_USER+1, etc. carp wrote: And how do I distinguish the messages in my system wide mouse hook? All messages have a value, you'd #define your own. Christian I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002