使用Python开发游戏运行脚本(三)图片查找

本文接上一篇文章 使用Python开发游戏运行脚本(二)实现模拟点击

上一篇我们已经实现了python调用大漠插件查找指定的窗口,进行窗口句柄绑定,并实现鼠标模拟点击的功能;接下来我们要做的则是通过大漠插件提供的API,实现特定图片的查找功能。

一、截图保存我们需要查找的特定图片

要查找特定图片的第一步,是创建这张图片,并把这张图片存放到python项目的特定目录。
大漠插件支持查找的图片,必须是24位色格式的位图,一听24位色格式的位图是不是有点懵?24位色格式的位图是什么东西?而这种格式的图片我们又该如何创建呢?其实完全不需要担心这个问题,即使你完全没有RGB三色图之类的概念,也依然可以创建出这种图片;因为大漠插件本身为我们提供了一个便捷的工具类【大漠综合工具】,简单几步就能帮我们实现24位位图的截取和保存。

首先我们打开大漠插件的目录,一般大漠插件的根目录如下图所示的结构,里面有dm.dll动态库,大漠接口说明文档,大漠综合工具之类的文件。这里我们需要的是【大漠综合工具】
大漠综合工具01
打开这个【大漠综合工具】,主页面如下图图所示:
大漠综合工具02
这个综合工具的功能是非常强大的,这里我们简单介绍两种。

作用1:获取特定窗口的信息

当我们把箭头标注的圆圈拖拽到具体的窗口,然后再点击左侧属性按钮,就能非常直观的看到对应窗口的具体信息了;
特定窗口的信息捕获01
这里我们以【大漠插件接口说明】文档为例,当我们把圆圈拖拽到【大漠插件接口】文档窗口,然后再点击属性按钮,就能看到【大漠插件接口】文档窗口相关的信息了;有了这些信息,我们就能更方便的调用dm.FindWindow(class,title)方法查找具体窗口进行绑定了 。
特定窗口的信息捕获02

作用2:创建24位色格式的bmp位图

这里我们继续以【大漠插件接口说明】文档为例,当我们点击抓图按钮之后,整个桌面就会进入大漠插件的截屏模式,选择左上角的这个主页icon,然后点击确定,就能看到如下图所示的图片了。
抓取图片
保存我们截取好的【主页】Icon图标到python项目的特定目录,我这里是保存到了picture目录,命名为【icon_01_home.bmp】
保存bmp位图

二、进行图片查找

话不多说,这里直接上代码和代码运行结果截图

import win32com.client

if __name__ == '__main__':
    # 调用大漠插件,获取大漠对象
    dm = win32com.client.Dispatch('dm.dmsoft')
    # 设置全局路径,设置了此路径后,所有接口调用中,相关的文件都相对于此路径. 比如图片,字库等
    dm.SetPath("D:\PycharmProject\PythonMouseKey\dmtest\picture")
    # 查找窗口句柄
    window_handle = dm.FindWindow("HH Parent", "大漠接口说明 v3.1233") 
    # 进行窗口绑定
    is_bind_success = dm.BindWindow(window_handle, "normal", "normal", "normal", 0)
    # 查找图片
    if is_bind_success:
        dm_ret = dm.FindPicEx(0, 0, 800, 800, "icon_01_home.bmp", "000000", 0.9, 0)
        print("查找到的图片坐标信息:" + str(dm_ret))

查找特定图片
可以看到,我们成功找到了之前保存在项目目录dmtest\picture文件夹中的【icon_01_home.bmp】图片的位置信息(0,177,3),这个参数的0是序号的意思,如果FindPicEx方法找到多个图片,会以此用**|**号分割,并在相应坐标的前面添加上序号;这里因为只找到了一个,所以只返回了一个。
FindPicEx接口说明

  • 2
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Windows Usb热插拔是指在Windows操作系统中,当USB设备插入或拔出时,系统能够自动检测并做出相应的响应。在程序中实现USB热插拔的功能,可以通过注册USB设备信息和监测USB设备插拔事件来实现。 在程序初始时,可以通过注册USB设备信息来响应USB热插拔事件。这可以通过调用RegisterDeviceNotification函数来实现。在注册USB设备信息时,需要指定设备类型为DBT_DEVTYP_DEVICEINTERFACE,并传入相应的设备接口信息。具体的注册过程可以参考引用\[1\]中的代码示例。 另外,还可以使用方库来实现USB转串口设备的热插拔检测。例如,可以使用CH343PT库中的接口CH343PT_SetDevNotify来实现USB转串口设备的热插拔检测。具体的使用方法可以参考引用\[3\]中的介绍。 总结起来,Windows Usb热插拔可以通过注册USB设备信息和监测USB设备插拔事件来实现。具体的实现方法可以根据需求选择使用系统提供的函数或第方库来完成。 #### 引用[.reference_title] - *1* [windows下USB检测插拔状态](https://blog.csdn.net/qq_22642239/article/details/110451792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CH343PT库使用一>USB转串口设备的热插拔检测](https://blog.csdn.net/WCH_TechGroup/article/details/127514913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值