マウスをその場所に移動せずに、ウィンドウが上になくても、プログラムで別のウィンドウの場所をクリックすることは可能ですか?ある場所でのマウスクリックをシミュレートするために、ある種のメッセージを別のウィンドウに送信したいと思います。
私は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です。