MOUSEEVENTF_LEFTDOWN иногда не нажимает - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь автоматизировать генерацию электронных таблиц во внешнем приложении, и для этого используются события мыши и клавиши sendkeys. По большей части, он полностью функционален, за исключением того, что иногда, когда макрос вызывает щелчок левой кнопкой мыши, он фактически не щелкает.

До сих пор я пытался ввести более длительные сны между щелчками и в самом событии мыши, но этого, похоже, недостаточно.

Подставка левого щелчка:

'Mouse left click
Sub LeftClick()
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  Sleep 100
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

После каждого левого щелчка у меня также есть вызов Sleep(1000). Хотя это работает более 90% времени, когда он вызывается, мне нужно, чтобы оно работало 100% времени.

РЕДАКТИРОВАТЬ: добавление еще кода для каждого запроса, чтобы, надеюсь, попытаться устранить любую путаницу.

События мыши - это просто системная библиотека, на которую я ссылаюсь:

'Declare mouse events
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN As Long = &H2
Public Const MOUSEEVENTF_LEFTUP As Long = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...