программно щелкнуть мышью в другом окне

Можно ли программно щелкнуть место в другом окне, не перемещая мышь в это место и даже если окно не находится -вверху? Я хочу отправить какое-то сообщение в другое окно, чтобы имитировать щелчок мышью по месту.

Я попытался сделать это с помощью 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 соответственно.

22
задан Jet 31 July 2013 в 09:49
поделиться