Python Notes34:PyDirectInput

Python Notes34:PyDirectInput

前言

在python关于按键精灵得操作中常用的有PyAutoGUI,但在使用的过程中,针对一些游戏就直接失灵了,特别是一些以DirectX来开发的游戏或软件。这是因为PyAutoGUI使用的是 Virtual Key Codes (VKs),也就是模拟按键码。而对于这些游戏或软件来说需要使用Directinput,这样就需要直接从设备中获取数据,而不是模拟的。而这个由github上Ben Johnson开发的 PyDirectInput库就是针对此而设计的。
尝试了pyautogui、ctypes、pywinio(这个需要测试环境,稍微复杂)后,这些都能在常见的txt,编辑器中使用,但游戏中部分按键(例如:left、right、up、down)不能使用,还了解了键盘码表:单键扫描码、ascii、组合键码,发现使用PyDirectInput更为方便。

安装

  • pydirectinput-rgx是对PyDirectInput库的进一步改善
pip install pydirectinput-rgx

使用

import pydirectinput pydirectinput.moveTo(100, 150) # 移动鼠标至坐标100,150 pydirectinput.click() # 点击鼠标左键 pydirectinput.click(200, 220) # 移动鼠标至坐标200,220,并点击左键 pydirectinput.move(None, 10) # 鼠标移动相对y位置 pydirectinput.doubleClick() # 双击鼠标左键 pydirectinput.press('esc') # 按一下esc pydirectinput.keyDown('shift')#按下shift pydirectinput.keyUp('shift')#弹起shift