Управление BlueStacks на Python
Как можно управлять BlueStacks на Python? К примеру нажимать на кнопки (в игре) с помощи Python. Пробовал использовать appium и win32com но не не получилось подключится т.к. я не знаю как.
Ответы (1 шт):
Автор решения: Nikita
→ Ссылка
Можно использовать WinAPI с помощью модуля ctypes:
from ctypes import *
from ctypes.wintypes import *
from time import sleep
# Описания функций WinAPI
# https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-setcursorpos
windll.user32.GetCursorPos.restype = BOOL
windll.user32.GetCursorPos.argtypes = [LPPOINT]
# https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-setcursorpos
windll.user32.SetCursorPos.restype = BOOL
windll.user32.SetCursorPos.argtypes = (UINT, UINT)
# https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
windll.user32.mouse_event.restype = LPVOID
windll.user32.mouse_event.argtypes = (DWORD, DWORD, DWORD, DWORD, PULONG)
# Получить координаты курсора
def get_pos():
# Структура POINT
pos = POINT()
# Вызов GetCursorPos с указателем на эту структуру
windll.user32.GetCursorPos(pointer(pos))
# Вернуть координаты в виде списка
return [pos.x, pos.y]
# Клик
def click(x, y):
# Получить координаты курсора до клика
pos = get_pos()
# Установить курсор в новое положение
windll.user32.SetCursorPos(x, y)
# Отправить сигнал нажатия левой кнопки мыши
windll.user32.mouse_event(0x2, 0, 0, 0, None)
# Небольшая задержка
sleep(0.01)
# Отправить сигнал отпускания левой кнопки мыши
windll.user32.mouse_event(0x4, 0, 0, 0, None)
# Вернуть курсор в положение до клика
windll.user32.SetCursorPos(pos.x, pos.y)