Отправка WM_LBUTTONDBLCLK
на произвольный дескриптор окна или на рабочий стол не будет имитировать щелчок мыши.
Однако вы можете использовать SendInput
, который может имитировать щелчок мышью по заданным координатам экрана (не дескриптор окна, не координаты окна или клиента). Этот код будет имитировать щелчок левой кнопкой мыши в текущей позиции курсора:
INPUT in[2]; // 0 = left dn, 1 = left up
ZeroMemory(in, sizeof(INPUT) * 2);
in[0].type = INPUT_MOUSE;
in[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
in[1].type = INPUT_MOUSE;
in[1].mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(2, in, sizeof(INPUT));
Обратите внимание, что вы также можете использовать mouse_event
, но SendInput
предпочтительнее в соответствии с официальной документацией на MSDN.