软件准备
需要用到的软件PyCharm,梦幻西游手游客户端
需要安装的库
pip install pywin32
直接上代码吧,里面都注释好了
注意!!!!!需要登录到游戏账号后才能正确点击
原因是登录界面需要重新抓取窗口句柄
代码有些乱,但是都还好,自行优化吧能用=
import win32gui
import win32con
import win32api
import time
import os
#需要用到pywin32的库
times = 6
wdname = u'《梦幻西游》手游' # 窗口名
handle = win32gui.FindWindow(0, wdname) # 窗口句柄
if handle == 0:
for i in range(10):
print("没有获取到《梦幻西游》手游窗口")
else:
left, top, right, bot = win32gui.GetWindowRect(handle) # 梦幻窗口所在位置的坐标
for t in range(5):
times -= 1
print('将在倒数%d秒后点击现在鼠标所在梦幻西游的位置' % times)
tempt = win32api.GetCursorPos() # 记录鼠标所处位置的坐标
windowRec = win32gui.GetWindowRect(handle) # 目标子句柄窗口的坐标
x = tempt[0] - windowRec[0] # 计算相对x坐标
y = tempt[1] - windowRec[1] # 计算相对y坐标
print('坐标为', x, y)
time.sleep(1) # 每1s输出一次
def doClick(cx, cy):#点击坐标
print('点击',x,y,'坐标')
long_position = win32api.MAKELONG(cx, cy) # 模拟鼠标指针 传送到指定坐标
win32api.SendMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position) # 模拟鼠标按下
win32api.SendMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, long_position) # 模拟鼠标弹起
'测---------------------试'
for i in range(100):
if x>=left and y>=top and x < right and y < bot:
print('5秒后点击坐标',x,y)
time.sleep(5) # 每5s输出一次
doClick(x, y) # 可以后台点击但是程序不能最小化
elif x > 9999 and y > 9999:
for i in range(10):
print('程序不能最小化')
break
else:
for i in range(10):
print('鼠标不在梦幻西游界面')
break
print('程序----------------------结束')
更多推荐
python使用win32后台鼠标点击梦幻西游(只用于开学习技术)新手学习
发布评论