Python怎么注册和调用后台插件

最近在玩网游,就想使用python来代替人工,实现自动化操作。

查了许久的资料,终于发现了大漠插件这一后台神器。

使用了一段时间,发现一款后台插件的功能确实非常强大。

使用过程中也遇到了很多坑,虽然都自己解决了,但是也浪费了许多的时间和精力。

我想了想,就写个新手的教程吧,感兴趣的玩家也可以和我一起讨论下。


调用插件之前,必须先把插件注册到电脑的系统中。

自动注册

双击自带的bat文件,即可自动把插件注册到系统:
-------------------------------------------------------------------------------
注册大漠插件到系统.bat
-------------------------------------------------------------------------------

手动注册

解压下载好的大漠文件,然后使用管理员身份打开cmd命令行窗口。

注意:一定要用管理员身份运行命令行窗,否则会报错!

在命令行窗口中,进入到dm.dll所在的文件夹,输入以下命令即可注册成功。

regsvr32 dm.dll

注册完成后,就可以调用了。

在Python中调用插件:


'''

# =============================================================================
# 1.调用大漠插件必须使用模块
# ============================================================================= 
import win32com.client

# =============================================================================
# 2.调用大漠插件,获取大漠对象
# =============================================================================
# client	英[ˈklaɪənt]  n.客户; 客户机
# dispatch  英[dɪˈspætʃ]  vt.派遣;调遣;派出;发出
dm = win32com.client.Dispatch('dm.dmsoft')

# =============================================================================
# 3.获取版本号:如果成功获取,则表示大漠插件调用成功
# =============================================================================
ver = dm.ver()
print(f'大漠插件的版本号是:{ver}')  # 输出版本号

# =============================================================================
# 4.进行VIP收费注册
# =============================================================================
# 上面确认插件注册成功,并且创建了对象,下面开始注册收费服务。
dm_vip = dm.Reg("XXX",
                "XXX")  # (注册码,附加码)
if dm_vip != 1:
    print(f'收费注册失败!返回值是{dm_vip}。')
else:
    print(f'收费注册成功!返回值是{dm_vip}。')
print('='*50)

# 收费注册结束<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

# =============================================================================
# 5.设置全局路径。设置了此路径后,大漠将调用此路径的文件,如找图、找字的图片、字库等。
# =============================================================================
dm.SetPath(r"B:\XXX\XXX")
dm.SetDict(0, r"B:\XXX\XXX\XXX.txt")


获取句柄和绑定窗口

想要脚本后台运行,实现一边工作、看剧,一边脚本自动做任务,首先要做的就是进行窗口绑定。

窗口,是指游戏的窗口。每个窗口都有一个专属的ID,称为句柄。

绑定窗口,需要获取到窗口的句柄,然后使用插件自带的函数,进行窗口绑定操作。

只有成功绑定了窗口后,脚本才能在后台运行,不影响前台的其他操作。

怎么获取句柄呢?

使用插件的相关函数,进行窗口句柄的查找。

# 查找符合类名或者标题名的顶层可见窗口
# FindWindow(class,title) 
# 参数定义:
# class 字符串: 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.
# title 字符串: 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.
# 返回值:
# 窗口句柄,没找到返回0
# =====================================================================
# 示例:
hwnd = dm.FindWindow("","天涯明月刀") 

绑定窗口

绑定窗口使用BindWindow(hwnd,display,mouse,keypad,mode)函数。
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定
 


参数定义:
hwnd: 指定的窗口句柄
display 字符串: 屏幕颜色获取方式
mouse 字符串: 鼠标仿真模式
keypad 字符串: 键盘仿真模式
mode 整数: 模式。
-------------------------------------------------------------------------------
需要注意的是: 模式101 103在大部分窗口下绑定都没问题。
但也有少数特殊的窗口,比如有很多子窗口的窗口,
对于这种窗口,在绑定时,一定要把鼠标指向一个可以输入文字的窗口,
比如一个文本框,最好能激活这个文本框,这样可以保证绑定的成功。
-------------------------------------------------------------------------------
返回值:
0: 失败
1: 成功
如果返回0,可以调用GetLastError来查看具体失败错误码,帮助分析问题.
 

示例:
# 示例:
# ---------------------------------------------------------------------------  
# display: 前台 鼠标:前台键盘:前台 模式0
dm_ret = dm.BindWindow(hwnd,"normal","normal","normal",0)

# display: dx 鼠标:前台 键盘:前台模式0
dm_ret = dm.BindWindow(hwnd,"dx","normal","normal",0)

# display: dx 鼠标:dx 后台 键盘: dx后台 模式1
dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",1) 

# display: dx 鼠标:windows3后台 键盘:windows后台 模式101
dm_ret = dm.BindWindow(hwnd,"dx","windows3","windows",101)

绑定dx会比较耗时间,请不要频繁调用此函数。 还有一点特别要注意的是,有些窗口绑定之后必须加一定的延时,否则后台也无效。一般1秒到2秒的延时就足够。 发现绑定失败的几种可能(一般是需要管理员权限的模式才有可能会失败)

  • 1.系统登录的帐号必须有Administrators权限

  • 2.一些防火墙会防止插件注入窗口所在进程,比如360防火墙等,必须把dm.dll设置为信任。

​绑定窗口后,才可以进行后台操作。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值