python代替按键精灵 游戏内失灵_python游戏脚本之调用按键精灵插件模拟输入(二)...
我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作。大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级快! 采用COM接口编写,适用于所有语言调用。
网上相关教程极少,我们只能一步步自己摸索。
首先下载大漠核心组件dm.dll,在win10的新版总是出现闪退bug,为了稳定性,选择比较老的.2xxx版本了。
下载地址
下载解压后,将dm.dll复制到C:\Windows\SysWOW64文件夹里。(显然你应该是64位系统,应该没人用2位了吧)
以管理员方式打开cmd,如果你是windows管理员账号直接打开应该就没问题了
键入:
C:
cd C:\Windows\SysWOW64
regsvr2 dm.dll
大功告成了,注册完成
import
dm = .Dispatch( dm.dmsoft ) #调用大漠插件
(10,10)
其中win2com帮我们加载了dll文件,直接调用dm.function 就可以使用插件了,注意有返回值的对象最好写上等于符号,哪怕他返回的变量没有用(vc的语法)
然后运行,发现一长串的报错…
别急,分析报错,我们的python版本一般来说我64位的,而大漠是02年推出的脚本插件,是基于按键精灵和vc语言开发的Active X脚本,它只支持2位。
为了支持插件我们只好下载一个2位的python,下载地址
我下载的是python.6-2的
下载之后最好把add path勾选,然后把之前64位的path再系统变量里取消掉,之后再讲为什么要这么做。之后呢,如果使用pycharm一定要选好解释器(2位),如果还用了ipython等工具,一定要把默认解释器也相应修改。
当然最简单的就是在visual code加上Ipython模块上编辑啦,你直接替换一下解释器属性就行了。
如果以上配置成功,再运行以上代码。你的输出大概这样,然后鼠标会移到屏幕左上角。
仔细阅读插件文档加调试了一两天之后…
彻底放弃了long SetSimMode(mode)这个函数,这个函数总是返回值为0,提示我未注册,导致我没法进入硬件驱动模式,从而被楚留香屏蔽了脚本输入。
直到今天再读文档发现了这个函数
于是修改代码为如下,保存名字为 test.py
注:这段代码是不可以直接运行的,因为大漠插件要求管理员权限,直接run可能运行失败
运行方法:
1.首先将python.6-2位的path加入系统变量Path中
2.以管理员身份启动命令行
.键入 python X:\xxxx(你的路径)\test.py
如果你没添加path,要么去修改path,要么直接cd到python.6-2位目录下输入该指令
import
import win2con
import win2gui
import time
hwnd=win2gui.FindWindow(one, 楚留香 )
if(win2gui.IsIconic(hwnd)):
win2gui.ShowWindow(hwnd, win2con.SW_RESTORE)
win2gui.SetWindowPos(hwnd, win2con.HWD_TOPMOST, 00,200,1200,800,win2con.SWP_SHOWWIDOW)
dm = .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,)
如果打印值不为1、0,说明配置是有问题
可能导致问题几点:
1.关闭uca,拿win10来说控制面板-安全和维护-关闭所有防火墙-更改用户控制和账户控制设置,拉到最低
2.重启开机按F1,F2和DEL,进入BIOS模式,进入ROOT或者Security选项卡,把Secure Boot 选项的enabled 改为disable
.将游戏同时也以管理员身份启动
这段代码是每隔s给楚留香发送1个ESC键,如果这个ESC没被屏蔽掉,证明我们模拟输入就成功了。
然后游戏中显然ESC键生效了,我们已经基本掌握了如何用python大漠插件方式向“楚留香”发送模拟指令,接下来的逻辑工作无非是确定每个点的坐标,然后进行键位组合即可。
但是还有一个问题没解决,就是如何识别文字。
摆摊界面的价格,机器是不可能自动识别的,我们必须识别出来再与我们理想价格做一个比较,才能辅助我们抢不抢购。
附录:大漠插件虚拟键码
key_str 虚拟键码
1, 49
2, 50
, 51
4, 52
5, 5
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, 7
j, 74
k, 75
l, 76
m, 77
n, 78
o, 79
p, 80
q, 81
r, 82
s, 8
t, 84
u, 85
v, 86
w, 87
x, 88
y, 89
z, 90
ctrl, 17
alt, 18
shift, 16
win, 91
space, 2
cap, 20
tab, 9
~, 192
esc, 27
enter, 1
up, 8
down, 40
left, 7
right, 9
option, 9
print, 44
delete, 46
home, 6
end, 5
pgup,
pgdn, 4
f1, 112
f2, 11
f, 114
f4, 115
f5, 116
f6, 117
f7, 118
f8, 119
f9, 120
f10, 121
f11, 122
f12, 12
[, 219
], 221
\\, 220
;, 186
, 222
,, 188
., 190
/, 191
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上一篇:QQ等级加速方法与等级计算规则
下一篇:联想G50笔记本如何装win7
推荐阅读
留言与评论(共有 9 条评论) |
本站网友 黑客x档案 | 30分钟前 发表 |
20 tab | |
本站网友 小泽圆电影 | 17分钟前 发表 |
79 p | |
本站网友 肩周炎偏方 | 11分钟前 发表 |
51 4 | |
本站网友 扭痧 | 25分钟前 发表 |
while True | |
本站网友 天龙八部暗器 | 29分钟前 发表 |
(显然你应该是64位系统,应该没人用2位了吧) 以管理员方式打开cmd,如果你是windows管理员账号直接打开应该就没问题了 键入: C | |
本站网友 小熊论坛 | 6分钟前 发表 |
16 win | |
本站网友 沙盘治疗 | 13分钟前 发表 |
76 m | |
本站网友 柿子的产地 | 23分钟前 发表 |
65 b |