我有一个模拟鼠标点击的程序。
代码是这样的:
[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已锁定),则只移动光标但不会按下。
有什么想法吗?
答案 0 :(得分:4)
Windows上的登录屏幕旨在不允许点击和UI自动化,作为安全功能,IIRC