python使用win32后台鼠标点击梦幻西游(只用于开学习技术)新手学习

软件准备
需要用到的软件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,游戏,软件测试,编程语言,游戏开发)