#c# #click #user32 #mousedown #mouseup
#c# #щелкните #пользователь32 #mousedown #mouseup
Вопрос:
Я настраиваю простое приложение на 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 down также выполняться?
Ответ №1:
Я думаю, вы выполняете mouse_event (MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) и используете SetCursorPos (int x, int y), где x является курсором.Положение.Курсор X и y.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);
У меня это сработало.
Ответ №2:
В Windows 10 есть ошибка, не удается запустить MOUSEEVENTF_LEFTDOWN
на каком-то программном обеспечении.