无法在pyautogui/win32api/pydirectinput的游戏窗口内点击



我可以点击窗口,但它不能移动我的角色,也不能与游戏中的任何东西互动。我试过移动鼠标,我试过键盘输入,全屏,窗口等。我也尝试过使用pyautogui的截图,但没有运气。我尝试使用它的游戏最初是在2000年发布的。非编码方面,我试过以管理员身份运行,在windows xp sp 2-3兼容模式下运行,禁用桌面组成等。

win32api代码:

import win32api, win32con
import time
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)
# click(573, 841)
# time.sleep(1)
# click(289, 342)
# time.sleep(1)
time.sleep(5)
click(319, 399)
x = win32api.GetCursorPos()
print(x)
错误:

win32api.SetCursorPos((x,y)) pywintypes.error: (0, 'SetCursorPos', 'No error message is available')

pyautogui/pydirect输入:

import pyautogui
import pydirectinput as p
import time
icon = pyautogui.locateCenterOnScreen('./icon.png', confidence=0.9)
p.click(icon[0], icon[1])
time.sleep(2)
p.press('enter')

这段代码不会抛出错误,它正常完成,而不需要点击游戏窗口

首先,确保以管理员身份运行脚本,否则Windows会阻止鼠标移动。另外,试着这样做:

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

你必须给它一点时间来点击,否则Python会做得太快,游戏不会注册它。

最新更新