我正在设置一个简单的C#应用程序,该应用程序将窗口设置为前景并在循环中执行点击。
(几年前我在Windows上编写了相同的程序。那时候一切运行良好。) 我正在使用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。
我怎样才能使鼠标按下的效果也一样?
答案 0 :(得分:0)
我认为您执行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);
这对我有用。
答案 1 :(得分:0)
Windows 10 有错误,无法在某些软件上运行 MOUSEEVENTF_LEFTDOWN
。