3

基本上每当我调用 pyautogui 来单击它时,它都会执行它,但随后会导致程序崩溃。这是程序:

import pyautogui
import time
pyautogui.click(650, 200, 10)
print("started")
while 2 == 2:
    x+1
    waittime = random.randrange(35, 40, 1)
    pyautogui.click(600, 680, waittime)
    pyautogui.click(1270, 0, 5)
    if (x % 4) == 0:
        pyautogui.click(600, 550, 4)

当我从命令提示符运行它时,我收到此错误

Traceback (most recent call last):
  File "C:\Users\dogja\Desktop\crap\region2\scriptybob\test.py", line 3, in <module>
    pyautogui.click(650, 200, 10)
  File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site-    packages\pyautogui\__init__.py", line 362, in click
    platformModule._click(x, y, 'left')
  File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site-    packages\pyautogui\_pyautogui_win.py", line 437, in _click
    _sendMouseEvent(MOUSEEVENTF_LEFTCLICK, x, y)
  File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site-    packages\pyautogui\_pyautogui_win.py", line 480, in _sendMouseEvent
    raise ctypes.WinError()
OSError: [WinError 127] The specified procedure could not be found.
4

2 回答 2

1

问题可能是由于最新版本的 pyautogui 是为 python 3.4 设计的,而最新版本是 3.5。我发现如果你运行的是 Windows,你可以使用 win32api。要安装它,请在管理员模式下运行命令提示符并 cd 到您的 python 脚本目录并运行以下命令:

pip install win32api

这将安装 win32api 及其先决条件。

然后,为 win32api 制作一个简单的点击包装器,使用这个函数:

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

这实际上将光标移动到某处,按下鼠标左键,然后非常快速地释放它。我没有写上面显示的点击片段,但我找不到我首先找到它的地方。对不起写那个片段的人。

于 2016-04-25T23:53:21.433 回答
1

也许您没有click以正确的方式使用该功能。见函数定义:

点击(x=None,y=None,clicks=1,interval=0.0,button='left',duration=0.0,tween=,pause=None,_pause=True)

使用pyautogui.click(650, 200, 10)你说x = 650,y = 200和clicks = 10。我猜你想说pyautogui.click(650, 200, interval=10)

于 2016-07-11T20:01:33.520 回答