Lia*_*roy 0 c# mouse winapi emulation cursor
我正在使用以下代码如何在C#中模拟鼠标单击?我发现它不起作用.这是代码:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
public void DoMouseClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 882, 554, 0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
DoMouseClick();
}
Run Code Online (Sandbox Code Playgroud)
我也曾尝试更换mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENT_LEFTUP...用mouse_event(MOUSEEVENTF_LEFTDOWN & MOUSEEVENT_LEFTUP...,但仍然没有运气.其他人已经成功了...为什么我不呢?
您不应该使用mouse_event(),它已被SendInput()取代.
有一个很好的理由,mouse_event()的返回类型是无效的.Windows没有任何方法可以告诉您,您做错了.SendInput返回UINT并通过返回0并通过GetLastError公开错误代码来报告错误.
你肯定做错了.发送同时上下按钮的鼠标事件没有意义.你需要打两次电话; 首先是下一个.
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |