背景
最近发现媳妇玩剑网三刷副本按技能键挂机,这种重复的工作还需要手动按,无法容忍。所以调研了一下如何编写自动按键的脚本。
实现
方案一
直接查询了一下python的自动按键库,发现pyautogui、pydirectinput、pywinio这些库。前两个库可以模拟按键,但是在剑网三游戏上没有反映,我没有调研为什么,怀疑这两个库是模拟的信号,而剑网游戏屏蔽了这些信号。
转战想使用驱动级别的模拟,发现了pywinio库,发现还是不好用,并且需要各种乱七八糟的证书识别,直接放弃。
方案二
逛github发现该实现 GitHub - ddxoft/master,看来已经有大神封了个dll。从该库下载dll等文件。直接用python调用,发现可以在游戏中执行。
dd_dll = windll.LoadLibrary('./dd43390.dll')
st = dd_dll.DD_btn(0)
print(st)
def press(key_code):st = dd_dll.DD_key(key_code, 1)print(st)time.sleep(random.uniform(0.1, 0.5))dd_dll.DD_key(key_code, 2)
注意
1. 需要从网站下载dll
2. 使用管理员运行
3. 需要调用一下dd_dll.DD_btn(0) (奇怪的设计)
ok,总之如果发现pyautogui等库无法使用,可以尝试用方案二试一下,足够用了。
看来以后还是要研究一下win开发啊。