python游戏脚本之调用按键精灵插件模拟输入(二)
我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作。大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级快! 采用COM接口编写,适用于所有语言调用。
网上相关教程极少,我们只能一步步自己摸索。
首先下载大漠核心组件dm.dll,在win10的新版总是出现闪退bug,为了稳定性,选择比较老的3.2xxx版本了。
下载地址
下载解压后,将dm.dll复制到C:\Windows\SysWOW64文件夹里。(显然你应该是64位系统,应该没人用32位了吧)
以管理员方式打开cmd,如果你是windows管理员账号直接打开应该就没问题了
键入:
C:
cd C:\Windows\SysWOW64
regsvr32 dm.dll
大功告成了,注册完成
import win32com.clientdm = win32com.client.Dispatch('dm.dmsoft') #调用大漠插件
dm.moveto(10,10)
其中win32com帮我们加载了dll文件,直接调用dm.function dm.constant就可以使用插件了,注意有返回值的对象最好写上等于符号,哪怕他返回的变量没有用(vc的语法)
然后运行,发现一长串的报错…
别急,分析报错,我们的python版本一般来说我64位的,而大漠是02年推出的脚本插件,是基于按键精灵和vc语言开发的Active X脚本,它只支持32位。
为了支持插件我们只好下载一个32位的python,下载地址
我下载的是python3.6-32的
下载之后最好把add path勾选,然后把之前64位的path再系统变量里取消掉,之后再讲为什么要这么做。之后呢,如果使用pycharm一定要选好解释器(32位),如果还用了ipython等工具,一定要把默认解释器也相应修改。
当然最简单的就是在visual code加上Ipython模块上编辑啦,你直接替换一下解释器属性就行了。
如果以上配置成功,再运行以上代码。你的输出大概这样,然后鼠标会移到屏幕左上角。
仔细阅读插件文档加调试了一两天之后…
彻底放弃了long SetSimMode(mode)这个函数,这个函数总是返回值为0,提示我未注册,导致我没法进入硬件驱动模式,从而被楚留香屏蔽了脚本输入。
直到今天再读文档发现了这个函数
于是修改代码为如下,保存名字为 test.py
注:这段代码是不可以直接运行的,因为大漠插件要求管理员权限,直接run可能运行失败
运行方法:
1.首先将python3.6-32位的path加入系统变量Path中
2.以管理员身份启动命令行
3.键入 python X:\xxxx(你的路径)\test.py
如果你没添加path,要么去修改path,要么直接cd到python3.6-32位目录下输入该指令
import win32com.client
import win32con
import win32gui
import time
hwnd=win32gui.FindWindow(None,'楚留香')
if(win32gui.IsIconic(hwnd)):win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)
dm = win32com.client.Dispatch('dm.dmsoft') #调用大漠插件
re=dm.BindWindow(hwnd,"normal","dx2","dx",4)
print(re)
print(dm.GetLastError())
def keydownup(num,times):while True:dm_res=dm.keypress(num)time.sleep(times)
keydownup(27,3)
如果打印值不为1、0,说明配置是有问题
可能导致问题几点:
1.关闭uca,拿win10来说控制面板-安全和维护-关闭所有防火墙-更改用户控制和账户控制设置,拉到最低
2.重启开机按F1,F2和DEL,进入BIOS模式,进入ROOT或者Security选项卡,把Secure Boot 选项的enabled 改为disable
3.将游戏同时也以管理员身份启动
这段代码是每隔3s给楚留香发送1个ESC键,如果这个ESC没被屏蔽掉,证明我们模拟输入就成功了。
然后游戏中显然ESC键生效了,我们已经基本掌握了如何用python+大漠插件方式向“楚留香”发送模拟指令,接下来的逻辑工作无非是确定每个点的坐标,然后进行键位组合即可。
但是还有一个问题没解决,就是如何识别文字。
摆摊界面的价格,机器是不可能自动识别的,我们必须识别出来再与我们理想价格做一个比较,才能辅助我们抢不抢购。
附录:大漠插件虚拟键码
key_str 虚拟键码
"1", 49"2", 50"3", 51"4", 52"5", 53"6", 54"7", 55"8", 56"9", 57"0", 48"-", 189"=", 187"back", 8"a", 65"b", 66"c", 67"d", 68"e", 69"f", 70"g", 71"h", 72"i", 73"j", 74"k", 75"l", 76"m", 77"n", 78"o", 79"p", 80"q", 81"r", 82"s", 83"t", 84"u", 85"v", 86"w", 87"x", 88"y", 89"z", 90"ctrl", 17"alt", 18"shift", 16"win", 91"space", 32"cap", 20"tab", 9"~", 192"esc", 27"enter", 13"up", 38"down", 40"left", 37"right", 39"option", 93"print", 44"delete", 46"home", 36"end", 35"pgup", 33"pgdn", 34"f1", 112"f2", 113"f3", 114"f4", 115"f5", 116"f6", 117"f7", 118"f8", 119"f9", 120"f10", 121"f11", 122"f12", 123"[", 219"]", 221"\\", 220";", 186"'", 222",", 188".", 190"/", 191
python游戏脚本之调用按键精灵插件模拟输入(二)相关推荐
- python调用按键精灵插件_按键精灵自动寻路系列换算地图坐标寻路法
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...
- python调用按键精灵插件_按键精灵——办公常用脚本集锦
这是奔跑的键盘侠的第123篇文章 临时起意,想想按键精灵的官方视频教程虽然比较有条理,但是毕竟内容有限,甚至重点是在讲游戏挂机.其实很多人都不怎么玩游戏,应用场景一旦转移至办公,很多人可能就有点苍白了 ...
- python调用按键精灵插件_按键精灵——如何实现办公自由(四)
这是奔跑的键盘侠的第174篇文章 作者|我是奔跑的键盘侠 来源|奔跑的键盘侠(ID:runningkeyboardhero) 转载请联系授权(微信ID:ctwott) 前面写的几篇,不知道大家是否能看 ...
- python调用按键精灵插件_[LOG]VC++项目导入大漠插件
0x00 前言 大漠综合插件(dm.dll)采用vc6.0编写,是一款集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身的综合插件. 大漠综合插件(dm.dll)主要用于按键精灵. ...
- python调用按键精灵插件_【师兄带你学Python-1】你会涮火锅吗?
大家好,我是狐狸博士.从今天起,我来和大家聊聊Python自学以及助力咱们科(Rí)研(Cháng)工作的那些事儿.如果你想事半功倍.想按时下班.想按时毕业,再或者你想成为大神玩转数据,请千万不要错过 ...
- python调用按键精灵插件_谈一谈火车采集器的插件使用
火车采集器.火车浏览器这两款软件大家在平常工作中应该经常使用吧,有数据采集需求和各类公司运营人员想必都亲自使用过这个软件吧! 今天小编就与大家分享下两款软件所支持的插件,并讲解下每款插件的功能.一 ...
- python调用按键精灵插件_【一日一技】python模块的懒加载
在编写python项目时,通常将需要使用的模块直接通过import关键字导入到项目中,如果后续逻辑变动了,这个模块不需要使用,此时这个模块就白引入了,此时可以利用 import 方法实现模块的懒加载. ...
- python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...
前言 工欲善其事必先利其器,这也是老生常谈的事情了.在做日常开发中,让我感受到一个顺手的开发工具的重要性.截至目前对于不同语言自己也使用过很多开发工具,有一些简单的编辑器例如:notepad++.Ed ...
- 锁定计算机按键精灵运行,最新按键精灵脚本代码大全 按键精灵命令运行方法...
按键精灵脚本代码命令运行大全.按键精灵的鼠标动作录制是一项非常好用的功能,但因为鼠标点击的地方是固定死板的,且延迟时间无法调整,如果在后台脚本中添加一些专用代码,就可以调整点击频率和点击时间,甚至可以 ...
最新文章
- 为什么百万医疗险越来越多,到底选哪款?
- 字节跳动花50亿买了个什么?
- 谷歌SEO和百度SEO的区别
- NumPy - np.meshgrid()
- Mybatis开发CRUD
- Rinne Loves Edges
- 《剑指Offer》解题目录(更新完毕)
- python 数学公式显示_ipython jupyter notebook中显示图像和数学公式实例
- linux学习命令总结⑩②
- BP神经网络整定PID
- 2022.11.22 英语背诵
- oracle+omf+格式,Oracle OMF管理数据文件
- 使用免费证书安装 ipa 到真机
- ObjectArx自定义实体入门(C++)及注意事项
- 注册表中如何查找计算机名,怎么进行注册表搜索
- 查看网站服务器版本,查看网站为TLS或SSL及其版本
- 交换机Access模式和Trunk模式配置演示
- 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- [译]集群调度架构的变革 (四)
- SettingsProvider简单分析