Можно ли простым кодом моделировать щелчок мыши в другом приложении? - PullRequest
0 голосов
/ 18 апреля 2020

До сих пор я с большим успехом использовал (в Windows XP с Delphi 7) этот код для создания довольно простой программы (для симуляции), чтобы щелкать мышью в любом приложении Windows (не написанном меня в Delphi, конечно):

SetCursorPos(327,344);
{Simulate the left mouse button down}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,327,344 , 0, 0);
{Simulate the left mouse button up}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,  327,344, 0, 0);

Теперь, под Windows 10, когда я использую этот код, единственная вещь, которую делает моя программа, это перемещать курсор туда, где мне нужно нажать, но реального клика не происходит.

Я также пробовал этот код, но реального клика тоже не было:

SetCursorPos(327,344);
ZeroMemory(@eu,sizeof(eu));
eu[0].Itype := INPUT_MOUSE;
eu[0].mi.dwFlags := MOUSEEVENTF_LEFTDOWN;
eu[1].Itype := INPUT_MOUSE;
eu[1].mi.dwFlags := MOUSEEVENTF_LEFTUP;
SendInput(2,eu[0],sizeof(TInput));

Можете ли вы помочь мне с кодом, чтобы сделать этот щелчок?

Кроме того, может быть, для имитации нажатия клавиш, как CTRL + A (выбрать все)?

Теперь я использую Delphi 10.3 Rio и Windows 10, и я ПОТЕРЯЛ в документация. Может ли это быть проблемой?

SendInput: Эта функция зависит от UIPI. Приложениям разрешено вводить данные только в приложения с равным или меньшим уровнем целостности.

...