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.client


dm = 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来说控制面板-安全和维护-关闭所有防火墙-更改用户控制和账户控制设置,拉到最低
1

2.重启开机按F1,F2和DEL,进入BIOS模式,进入ROOT或者Security选项卡,把Secure Boot 选项的enabled 改为disable
2
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
  • 5
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
按键精灵是一款非常强大的自动化工具,可以帮助用户完成各种重复性的操作。如果想要在按键精灵调用Python脚本,可以按照以下步骤进行操作: 1. 首先,确保你已经在电脑上安装了Python解释器和按键精灵软件,并且已经配置好了相应的环境变量。 2. 打开按键精灵软件,点击“新建任务”按钮,创建一个新的任务。 3. 在任务编辑界面中,找到“插件”选项,点击“插件管理器”。 4. 在插件管理器中,点击“添加插件”,然后选择“脚本插件”。 5. 在脚本插件中,找到“Python脚本”选项,点击“编辑”。 6. 在Python脚本编辑界面中,可以编写自己的Python脚本代码。可以使用Python标准库或第三方库实现各种功能。 7. 编写完成后,保存脚本,然后返回任务编辑界面。 8. 在任务编辑界面中,找到你想要触发Python脚本的操作,比如点击一个按钮、输入一个文本等。 9. 针对这个操作,点击右侧的“动作设置”按钮,在弹出的界面中选择“插件动作”,然后选择刚才创建的Python脚本插件。 10. 设置完成后,保存任务,并运行它,按照你预设的操作触发Python脚本的执行。 通过以上步骤,就可以实现按键精灵调用Python脚本的功能。你可以根据具体的需求编写不同的Python脚本,实现各种自动化的操作。同时,按键精灵还可以结合其他的插件和功能,进一步扩展和优化你的自动化流程。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值