Задать вопрос
@tvorec148

Как сделать эмуляцию клика мыши на python без задействования основного курсора?

Всем привет, ситуация такая пишу софт для эмуляторов и что бы выполнять нажатия по координатам, пользовался вот такой функцией. И все отлично работало на nox эмуляторе и в обычных окнах, но именно на ld player 9(такой же эмулятор как nox для андройда, но более производительный), клики не регистрируются почему-то.
def click_on_telegram(loc, bbox, hwnd):
    if loc is None:
        print("Координаты не найдены для клика.")
        return

    x, y = loc
    window_x = bbox[0]
    window_y = bbox[1]

    click_x = window_x + x
    click_y = window_y + y

    if bbox[0] <= click_x <= bbox[2] and bbox[1] <= click_y <= bbox[3]:

        local_x = click_x - window_x
        local_y = click_y - window_y


        l_param = win32api.MAKELONG(local_x, local_y)

        win32gui.PostMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, l_param)
        win32gui.PostMessage(hwnd, win32con.WM_LBUTTONUP, 0, l_param)
        
        print(f"Клик по координатам внутри окна: ({local_x}, {local_y})")
    else:
        print("Координаты клика выходят за пределы окна.")

Sendmessage тоже пробовал, и проверял проходит ли клики в общем все базовые проверки вроде сделал.
При том если использовать pyautogui, pynput и тому подобные высокоуровневые клики, которые двигают именно твой курсор к координате и делают клик то все работает. Но вот нужно именно без взаимодействием с основным курсором.

Сейчас нахожусь на этапе spy++ что бы понять что как с этой мышкой и какого параметра не хватает в win32api что бы регистрировало нажатие.
Может кто, кто знает как решить? Или там какой модуль на c++ написать, возможно? Или хотя бы направление куда копать.

UPD:
В итоге помогло решение через adb.
subprocess.run(['adb', '-s', device_serial, 'shell', 'input', 'tap', str(x), str(y)])
  • Вопрос задан
  • 362 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@rPman
Поищи в nox аналог adb подключения для отладки приложений, с его помощью можно симулировать нажатия
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker Куратор тега Windows
Dark side eye. А у нас печеньки! А у вас?
Но вот нужно именно без взаимодействием с основным курсором.

Только в виртуальной машине.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы