我正在设置一个简单的C#应用程序,它将窗口设置为前景并在循环中执行点击。
(几年前我在Windows 7上编写了相同的程序。那时候一切都很好。)我现在正在使用Windows 10。
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
private const int MOUSEEVENTF_RIGHTUP = 0x0010;
public void DoMouseClick()
{
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
Thread.Sleep(150);
mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
除了第一部分是MOUSEEVENTF_LEFTDOWN之外,事情似乎有效。如果我手动按住左键,我可以看到程序在下一步中释放它,即MOUSEEVENTF_LEFTUP。
我怎样才能使鼠标失效呢?
我认为你做mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0)并使用SetCursorPos(int x,int y),x为Cursor.Position.X和y Cursor.Position.Y
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
SetCursorPos(X, Y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Thread.Sleep(150);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
这对我有用。