python中的win32api.setcursorpos错误
好的,我正在做一个“简单”的机器人,应该可以玩 在一些教程的帮助下,我编写了这段代码python中的win32api.setcursorpos错误,python,winapi,keyboard,win32com,pyautogui,Python,Winapi,Keyboard,Win32com,Pyautogui,好的,我正在做一个“简单”的机器人,应该可以玩 在一些教程的帮助下,我编写了这段代码 from pyautogui import * import pyautogui import time import keyboard import random import win32api, win32con #color (255,219,195) run = False def clicker(x,y): win32api.SetCursorPos((x,y)) win32ap
from pyautogui import *
import pyautogui
import time
import keyboard
import random
import win32api, win32con
#color (255,219,195)
run = False
def clicker(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
while keyboard.is_pressed('w') == False:
if keyboard.is_pressed('d') and run == False:
run = True
if keyboard.is_pressed('a') and run == True:
run = False
if run == True:
if keyboard.is_pressed('d') and run == False:
run = True
if keyboard.is_pressed('a') and run == True:
run = False
pic = pyautogui.screenshot(region=(570,440,1330-570,975-440))
width, height = pic.size
for x in range (0,width,5):
for y in range(0,height,5):
r, g, b = pic.getpixel((x,y))
if r == 255 and g == 219 and b ==195:
clicker(x+570,y+440)
time.sleep(0.1)
print("click")
break
但在我开始运行代码6分钟后,它会给我
Traceback (most recent call last):
File "C:\Users\angel\OneDrive\Escritorio\bot_tutorials\acurrate.py", line 35, in <module>
clicker(x+570,y+440)
File "C:\Users\angel\OneDrive\Escritorio\bot_tutorials\acurrate.py", line 13, in clicker
win32api.SetCursorPos((x,y))
pywintypes.error: (0, 'SetCursorPos', 'No error message is available')
回溯(最近一次呼叫最后一次):
文件“C:\Users\angel\OneDrive\Escritorio\bot\u tutorials\acurrate.py”,第35行,在
点击器(x+570,y+440)
clicker中第13行的文件“C:\Users\angel\OneDrive\Escritorio\bot\u tutorials\acurrate.py”
win32api.SetCursorPos((x,y))
pywintypes.error:(0,'SetCursorPos','没有可用的错误消息')
或IOR错误:屏幕抓取失败
我不知道你是否需要这个,但我的电脑是1920×1080像素,它是一个窗口
提前感谢您是否在6分钟内没有可用的
错误消息
发生?我没有重现您的问题,IOError
似乎是由ImageGrab
引起的,但您的代码没有调用它。它只是在随机时间发生,通常在6分钟后返回(最近一次调用最后一次):文件“C:\Users\angel\OneDrive\Escritorio\bot\u tutorials\acurrate.py”,第28行,在pic=pyautogui.screenshot中(region=(5704401330-570975-440))文件“C:\Program Files\Python37\lib\site packages\pyscreeze_init_uu2;.py”,第135行,包装器返回包装函数(*args,**kwargs)文件“C:\Program Files\Python37\lib\site packages\pyscreeze_init_2;.py”,第427行,在win32 im=ImageGrab()文件中“C:\Program Files\Python37\lib\site packages\PIL\ImageGrab.py”,第54行,在grab-1中,文件“C:\Program Files\Python37\lib\site packages\PIL\Image.py”,第2657行,在frombytes im=new(mode,size)文件“C:\Program Files\Python37\lib\site packages\PIL\Image.py”,第2621行,在新的返回im.\u new(core.fill(mode,size,color))请从最小的代码示例开始。您提供的代码示例不显示pywintypes.error
(即使经过很长一段时间),并且您调用SetCursorPos
的方式是正确的。注意:将完整样本划分为多个较小的样本将有助于快速解决问题。是否在6分钟内没有可用的错误消息
发生?我没有重现您的问题,IOError
似乎是由ImageGrab
引起的,但是您的代码没有调用它。它只是在随机时间发生,通常在6分钟后返回(最后一次调用):文件“C:\Users\angel\OneDrive\Escritorio\bot\u tutorials\acurrate.py”,第28行,在pic=pyautogui.screenshot(region=(5704401330-570975-440))文件“C:\Program Files\Python37\lib\site packages\pyscreeze\u init.py,第135行,在包装器返回wrappedFunction(*args,**kwargs)文件“C:\Program Files\Python37\lib\site packages\pyscreeze\u init\uuuz.py”中,第427行,在抓取-1文件中的C:\Program Files\Python37\lib\site packages\PIL\ImageGrab.py()文件“C:\Program Files\Python37\lib\site packages\PIL\ImageGrab.py”中“C:\Program Files\Python37\lib\site packages\PIL\Image.py”,第2657行,在frombytes im=new(mode,size)文件中,“C:\Program Files\Python37\lib\site packages\PIL\Image.py”,第2621行,在new return im.\u new(core.fill(mode,size,color))请从最小的代码示例开始。您提供的代码示例不显示pywintypes.error
(即使经过很长一段时间),并且您调用SetCursorPos
的方式是正确的。注意:将完整示例划分为多个较小的示例将有助于快速解决问题。