我可以单击窗口,但它不会移动我的角色,也不会与游戏中的任何内容进行交互。我尝试过移动鼠标,尝试过键盘输入、全屏、窗口化等。我也尝试过使用 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 会太快,游戏不会注册它。
我需要一些帮助。
我已经在主机上成功设置了所有内容,并且游戏运行完美 - 点击和键盘输入都运行良好。我能够使用 pyautoit 实现这一目标,这是唯一对我有用的工具。
但是,当我尝试在 VMware 计算机上运行相同的设置时,它不起作用。我不确定为什么它在虚拟机中的行为方式不同。
任何见解或建议将不胜感激!