基于计算机视觉的梦幻西游辅助脚本(只用于开发学习技术)

一个基于计算机视觉开发的梦幻西游辅助脚本

(为了不让别有用心的人用软件牟利,虽然软件打包好了,但仅供有兴趣的人学习代码,不提供软件下载)

从有想法到弄出来花了两三天,很多知识都是现学的,哈哈,虽然有点累,但是蛮开心的。

【注】本工具不为盈利,只为兴趣,学以致用而已。

麻烦觉得不错的人点个star哦!

【注1】脚本或程序需要跑在管理员权限运行才行。因为鼠标点击需要管理员权限。只截图不需要。

【注2】本项目代码完整,存放在我的github上面,文中只是展示了一部分代码。

项目下载地址

【注3】类似下面的资源图片不会提供哦。

我的代码力都有截图保存的部分被我注释了,想实践的同学可以根据自己的窗口的情况先在目标区域截图保存作为基准,然后以后每次运行都截图来和保存的图比较即可。

在这里插入图片描述

本教程分四部分:

(1)使用python 的pywin32这个库来实现对Windows窗口的操作和点击。

(2)使用PIL来实现图像相似度的计算。

(3)使用tkinter这个库来实现图形化界面。

(4)使用pyinstaller这个库来实现把源程序打包成.exe文件。

一、pywin32的主要作用

1.捕获窗口;

def resolution():  # 获取屏幕分辨率
    return win32api.GetSystemMetrics(0), win32api.GetSystemMetrics(1)

# 获取梦幻西游窗口信息,返回一个矩形窗口
def get_window_info():
    wdname = u'《梦幻西游》手游'
    handle = win32gui.FindWindow(0, wdname)  # 获取窗口句柄
    if handle == 0:
        return None
    else:
        return win32gui.GetWindowRect(handle)

2.模拟鼠标键盘动作;

def move_click(x, y, t=0):  # 移动鼠标并点击左键
    win32api.SetCursorPos((x, y))  # 设置鼠标位置(x, y)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN |
                         win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)  # 点击鼠标左键
    if t == 0:
        time.sleep(random.random()*2+1)  # sleep一下
    else:
        time.sleep(t)
    return 0

二、使用PIL来抓取图像并实现相似度计算

#师门任务
def shimen(window_size):
    global is_start
    is_start = True
    topx, topy = window_size[0], window_size[1]
    # 使用按钮(比如是x1,y1,x2,y2)
    shiyong = Image.open("shiyong_jpg")
    shiyong_hash = get_hash(shiyong)
    # shiyong.show()
    # print(shiyong_hash)
    # 购买宠物(比如是x1,y1,x2,y2)
    goumai_cw = Image.open("goumai_cw_jpg")
    goumai_cw_hash = get_hash(goumai_cw)
    # 上交药品按钮(比如是x1,y1,x2,y2)
    shangjiao_yp = Image.open("shangjiao_yp_jpg")
    shangjiao_yp_hash = get_hash(shangjiao_yp)
    # 上交宠物按钮
    shangjiao_cw = Image.open("shangjiao_cw_jpg")
    shangjiao_cw_hash = get_hash(shangjiao_cw)
    #师门任务栏
    shimen = Image.open("shimen_jpg")
    shimen_hash = get_hash(shimen)

    # 师门任务栏
    shimen_songxin = Image.open("shimen_songxin_jpg")
    shimen_songxin_hash = get_hash(shimen_songxin)

    # 药店购买
    goumai_yp = Image.open("goumai_yp_jpg")
    goumai_yp_hash = get_hash(goumai_yp)
    # 商城购买
    goumai_sc = Image.open("goumai_sc_jpg")
    goumai_sc_hash = get_hash(goumai_sc)
    i=0
    count = 0
    while is_start:
        time.sleep(2)
        i=i
  • 29
    点赞
  • 227
    收藏
    觉得还不错? 一键收藏
  • 38
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值