Click to See Complete Forum and Search --> : Simulate a mouseclick with SendMessage


CatShoe
August 28th, 2008, 04:47 PM
Hi Folks,

I'm trying to simulate a mouse click in some windows, sending this:


SendMessage(hWnd, WM_LBUTTONDOWN, (WPARAM)0, (LPARAM)MAKELPARAM(ptCursor.x, ptCursor.y));
SendMessage(hWnd, WM_LBUTTONUP, (WPARAM)0, (LPARAM)MAKELPARAM(ptCursor.x, ptCursor.y));


reason for that is, I don't want the cursor to move. SendInput works of course, but that moves the cursor around.

Spy++ tells me those notifications do arrive, but nothing happens in the window ?

dc_2000
August 29th, 2008, 01:13 AM
It's a tricky business - I'm assuming those windows don't belong to your process? The behavior of your code depends on the OS. For example Vista can block some messages:
Microsoft Windows Vista and later. Message sending is subject to User Interface Privilege Isolation (UIPI). The thread of a process can send messages only to message queues of threads in processes of lesser or equal integrity level.Your only bet would be to use SendInput() with the MOUSEEVENTF_LEFTDOWN and second call with MOUSEEVENTF_LEFTUP flag.

What is your reason to send those messages?