Как заставить autopygui и pyglet работать вместе?

Возник конфликт между pyglet и autopygui, когда один работает, я не могу использовать другой. Я нашел несколько вещей в Интернете, но никто не опубликовал решение проблемы.

ctypes.ArgumentError: argument 1: <class 'TypeError'>: expected LP_POINT instance instead of pointer to POINT

https://github.com/asweigart/pyautogui/issues/26 https://code.google.com/archive/p/pyglet/issues/559

Это было исправлено вместе с проблемой 510 в ред. e46762382a3

Сказано, что будет решено в этой ссылке, но у меня все еще есть проблема.

https://bitbucket.org/pyglet/pyglet/issues/95/pyglet-error-with-lp_point-pyautogui

0 ответов

У нас была такая же проблема, которая, кажется, возникает, когда autopygui щелкает мышью.

Если вы можете импортировать дополнительную библиотеку, вот возможный обходной путь: вы можете использовать autopygui, чтобы найти изображение на экране, и другую библиотеку, чтобы заставить мышь "щелкать". Например:

import ctypes
import pyautogui

def click_mouse_at(pos):
    pos_x, pos_y = int(pos[0]), int(pos[1])
    ctypes.windll.user32.SetCursorPos(pos_x, pos_y)
    ctypes.windll.user32.mouse_event(2, 0, 0, 0,0) 
    ctypes.windll.user32.mouse_event(4, 0, 0, 0,0)
    
def get_centre(a_box):
    ''' return centre of an image '''
    return a_box[0]+a_box[2]/2, a_box[1]+a_box[3]/2

an_img_file_path = ..path to your image file..
click_mouse_at(get_centre(pyautogui.locateOnScreen(an_img_file_path)))

Протестировано на Windows10, похоже, работает

Другие вопросы по тегам