如何让autopygui和pyglet一起工作?

时间:2017-08-27 00:08:26

标签: python-3.x python-3.4 ctypes pyglet autopy

在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

1 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题,这似乎是在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上进行了测试,似乎可以正常工作