小编Jet*_*Jet的帖子

以编程方式鼠标单击另一个窗口

是否可以在不将鼠标移动到该位置的情况下以编程方式单击另一个窗口中的位置,即使窗口不在顶部?我想将一种消息发送到另一个窗口以模拟鼠标单击某个位置.

我试图用PostMessage完成这个:

PostMessage(WindowHandle, 0x201, IntPtr.Zero, CreateLParam(300,300));
PostMessage(WindowHandle, 0x202, IntPtr.Zero, CreateLParam(300,300));
Run Code Online (Sandbox Code Playgroud)

我用这种方式创建了CreateLParam函数:

private static IntPtr CreateLParam(int LoWord, int HiWord)
{
     return (IntPtr)((HiWord << 16) | (LoWord & 0xffff));
}
Run Code Online (Sandbox Code Playgroud)

问题是窗口被锁定在他的位置.我认为我的应用程序点击了(1,1)坐标.有人可以帮我解决这个问题吗?

编辑:这是PostMessage:

[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32.dll")]
public static extern bool PostMessage(IntPtr WindowHandle, int Msg, IntPtr wParam, IntPtr lParam);
Run Code Online (Sandbox Code Playgroud)

0x201和0x202分别是WM_LBUTTONDOWN和WM_LBUTTONUP.

c# windows mouse message click

22
推荐指数
2
解决办法
7万
查看次数

标签 统计

c# ×1

click ×1

message ×1

mouse ×1

windows ×1