虚拟鼠标点击问题

时间:2010-03-18 15:29:01

标签: c# winforms mouse

我有一个模拟鼠标点击的程序。

代码是这样的:

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

        private const int MOUSEEVENTF_LEFTDOWN = 0x02;
        private const int MOUSEEVENTF_LEFTUP = 0x04;

 public static void DoMouseClick(int x, int y)
        {
            Cursor.Position = new Point(x, y);
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, x, y, 0, 0);
        }

此代码完美无缺。例如,我每30分钟调用一次该函数。但是,如果按WINKEY + L(Windows已锁定),则只移动光标但不会按下。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

Windows上的登录屏幕旨在不允许点击和UI自动化,作为安全功能,IIRC