赞
踩
今天开始为自己玩的一款小游戏开发一个python游戏脚本
hwnd = win32gui.FindWindow(0, "雷电模拟器")
先调用win32gui 获取到窗口句柄
FindWindow(lpClassName=None, lpWindowName=None)
两个参数,一个类名,一个标题名。
import win32gui
使用 win32gui.EnumChildWindows() 函数枚举指定窗口下的所有子控件,并将它们的句柄添加到控件句柄列表中:
def callback(hwnd, controls):
controls.append(hwnd)
其中,hwnd 是指定窗口的句柄,callback 是回调函数,controls 是控件句柄列表。
hwnd = win32gui.FindWindow(None, “窗口标题”) # 根据窗口标题获取句柄
controls = []
win32gui.EnumChildWindows(hwnd, callback, controls)
for control in controls:
print(control)
注:在雷电模拟器中,键鼠操作的句柄应为模拟器的子窗口 TheRender,而不是顶级窗口。一开始测试好键鼠后,去搞
截图,把句柄设成了顶级,然后回来键鼠,一直失败,卡了好久,最后面才发现是句柄问题。
2023.11.11 04:00
完成了后台键鼠和后台找图功能后,发现一个问题,截图采用的是雷电的句柄,计算的坐标是带着雷电边框算的,而后台键鼠的坐标是直接从游戏窗口算的,坐标会有偏差。通过计算得到,x偏移1 ,y 偏移34
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。