首页 > 编程知识 正文

按键精灵手机写脚本完整教程,python控制键盘游戏内无效

时间:2023-05-04 04:05:38 阅读:35304 作者:4853

计划在python上调用键向导沙漠插件以完成模拟驱动的鼠标键盘操作。 沙漠综合插件(dm.dll )是用vc6.0编写的,识别速度非常快! 它是用COM接口编写的,适用于所有语言调用。

网上相关教程寥寥无几,我们只能一步一步自己摸索。

首先,下载沙漠核心组件dm.dll。 新版windows10总是会出现闪回错误。 为了稳定性,我选择了旧版本3.2xxx。

下载到

解压缩后,将dm.dll复制到C:WindowsSysWOW64文件夹中。 (显然你应该是64位系统,没有人会用32位吧)

以管理员身份打开cmd,然后直接在windows管理员帐户中打开,应该没问题

输入:

C:

cd C:WindowsSysWOW64

regsvr32 dm.dll

完成了。 注册完成

import win32com.client

调用DM=win32 com.client.dispatch (DM.DM soft ) #沙漠插件

DM.move to (10,10 ) )。

其中,win32com帮我加载了dll文件。 通过直接调用dm.function dm.constant可以使用插件。 请注意,对于具有返回值的对象,即使返回的变量没有用,也最好写等于符号。 (

然后执行,发现了一系列错误……

别急,请分析错误。 我们的python版本一般我是64位,而沙漠是02年推出的脚本插件,是基于关键向导和vc语言开发的Active X脚本,仅支持32位。

为了支持插件,我不得不下载32位python。 下载地址

我下载的是python3.6-32的

下载后,最好选中add path,从系统变量中取消前面的64位path,然后再说为什么要这么做。 然后,如果使用的是pycharm,则必须选择解释器(32位);如果还使用了ipython等工具,则还必须相应地修改默认解释器。

当然,最简单的是在visual code和Ipython模块中进行编辑。 只需直接替换解释器的属性。

上述配置成功后,运行上述代码。 你的输出大致是这样的,鼠标移动到画面的左上角。

仔细阅读插件文档调试一两天后…

我完全放弃了一个叫longsetsimmode(mode )的函数。 此函数始终提示返回值为0,表示未注册,因此无法进入硬件驱动器模式,并且已被调优者阻止脚本输入。

今天重读文档找到了这个函数

因此,修正代码如下,保存名称为test.py

注:此代码不能直接运行。 由于沙漠插件需要管理员权限,因此run可能会直接失败

执行方法:

1 .首先,将python3.6-32位path添加到系统变量path中

2 .以管理员身份启动命令行

python X:xxxx (输入您的路径(test.py )

如果未添加path,请修改path或直接从cd将命令输入到python3.6-32位目录中

import win32com.client

import win32con

导入win32 GUI

导入时间

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=win32 com.client.dispatch (DM.DM soft ) #沙漠插件

re=DM.bindwindow(hwnd,' normal ',' dx2 ',' dx ',4 ) )。

是打印(re )

打印(DM.getlasterror ) )

defkeydownup(num,times ) :

while True:

dm_res=dm.keypress(num )

time.sleep(times ) )。

keydown up (27,3 ) ) ) ) ) ) )。

如果打印值不是1,0,则配置有问题

可能导致问题的点:

1 .关闭UCA,在窗口S10中更改控制面板-安全和维护-关闭所有防火墙-用户控件和帐户控件设置,使其最小化

2 .重新启动并打开电源,按F1、F2和DEL进入系统设置模式,进入ROOT或Security选项卡,然后将安全引导选项启用更改为disable

/p>

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。