Возможно ли щелкнуть программно местоположение в другом окне, не перемещая мышь в это место, и даже если окно не находится сверху? Я хочу отправить какое-то сообщение в другое окно, чтобы имитировать щелчок мышью по местоположению.
Я попытался выполнить это с помощью PostMessage:
PostMessage(WindowHandle, 0x201, IntPtr.Zero, CreateLParam(300,300));
PostMessage(WindowHandle, 0x202, IntPtr.Zero, CreateLParam(300,300));
Я создал функцию CreateLParam следующим образом:
private static IntPtr CreateLParam(int LoWord, int HiWord)
{
return (IntPtr)((HiWord << 16) | (LoWord & 0xffff));
}
Проблема заключается в том, что окно блокируется в его местоположении. Я думаю, что мое приложение нажимает на (1,1) координату. Могут ли некоторые помочь мне с этой проблемой?
Изменить: Это сообщение PostMessage:
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32.dll")]
public static extern bool PostMessage(IntPtr WindowHandle, int Msg, IntPtr wParam, IntPtr lParam);
И 0x201 и 0x202 являются WM_LBUTTONDOWN и WM_LBUTTONUP соответственно.