模拟鼠标事件? C#

时间:2013-05-02 12:48:29

标签: c# winforms mouseevent

我正在尝试创建一个Windows窗体程序,使计算机就像按下鼠标按钮一样。 我想手动控制事件(时间不提前决定),并且需要按住,所以鼠标按钮释放应该是一个单独的事件。

以下信息不应更改代码,只是帮助您进一步了解我的情况:

  • 目的是允许来自Xbox 360控制器(与PC兼容)的用户输入来控制/控制它所连接的计算机。
  • 到目前为止,我找到的最佳解决方案是“Windows.Forms.SendKeys”方法,但它仅适用于键盘事件。

提前致谢! :d

1 个答案:

答案 0 :(得分:3)

我模拟像这样的鼠标事件

    [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 static void leftClick()
    {
        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }