C# 仅当移动鼠标时,SendMessage模拟操作才起作用。有办法解决这个问题吗?

C# 仅当移动鼠标时,SendMessage模拟操作才起作用。有办法解决这个问题吗?,c#,sendmessage,C#,Sendmessage,我正在游戏窗口中做一个“拖动”动作。我想把鼠标移到一个地方,然后再移到另一个地方 以下是c代码: uint Iparm = makeDWord((ushort)x, (ushort)y); IntPtr xd = new IntPtr(Iparm); uint Iparm2 = makeDWord((ushort)x2, (ushort)y2); IntPtr xd2 = new IntPtr(Iparm2); SendMessage(p, (uint)0x201, (IntPtr)0x1,

我正在游戏窗口中做一个“拖动”动作。我想把鼠标移到一个地方,然后再移到另一个地方

以下是c代码:

uint Iparm = makeDWord((ushort)x, (ushort)y);
IntPtr xd = new IntPtr(Iparm);
uint Iparm2 = makeDWord((ushort)x2, (ushort)y2);
IntPtr xd2 = new IntPtr(Iparm2);

SendMessage(p, (uint)0x201, (IntPtr)0x1, xd); // down button (start x,y)
SendMessage(p, (uint)0x202, (IntPtr)0x0, xd2); // up button (final x,y)
我用一个按钮连接了这段代码,比如说c表单中名为START的按钮。当我按下“开始”键并继续移动鼠标时,它工作得非常好。但是,当我只按下START并等待操作而不移动屏幕上的光标时,什么也没有发生。我已经用spy++检查了游戏窗口,同时按下了表单中的按钮,按下按钮移动/不移动光标的两种方式没有区别

我忘了补充一点,移动光标时,即使窗口最小化,也会发生动作,这很酷

是什么引起了我的问题P

编辑:

该代码放在一个函数中,p是windows句柄,按钮START执行该函数


正如我之前所说,当我移动光标时,代码工作正常。

请尝试在向下和向上之间使用WM_MOUSEMOVE消息调用SendMessage。

请改用。

请原谅我没有记住所有Windows消息。0x201和0x202是什么?那些是WM_MOUSEDOWN和WM_MOUSEUP吗?另外,这段代码在您的程序中的什么位置?是否在开始按钮的按钮处理程序中?多一点上下文会有帮助。编辑你需要的信息:我能用它最小化窗口吗?到指定的窗口?
WM_MOUSEDOWN = 0x201;
WM_MOUSEUP = 0x202;