对大漠插件的简单封装.
python3.6
conda
安装win32
环境脚本: shells\configWin32Env.bat
.shells\configWin32Env.bat # use conda to create a win32_py36 interpreter
# 推荐通过git clone后, 直接放在代码根目录下使用
pip install -r requirements.txt
from pydamo import Time, DM, Mouse
dm = DM() # 可指定dm.dll路径DM(path), 若无法使用某些函数dm.f(), 则使用dm.dm.f()来调用.
ms = Mouse(dm)
tt = Time()
print(ms.position) # 当前鼠标位置
tt.sleep(1)
x, y = (0, 0)
ms.position = x, y # 移动鼠标
ms.click_right(x, y) # 点击鼠标右键
可用于录制脚本等: pynput
, mouse
, keyboard
, git搜下照着文档用就行
这些不支持后台键鼠
如果不是D3D游戏的后台模拟的话,可以试试win API的系统级后台模拟SendMessage;
如果键盘为PS/2圆形接口的话,可用winio模块,但不支持USB键盘。
python自带方案(最近写原神脚本可以使用的方案)
ctypes
的可用于原神3D鼠标相对旋转: pydirectinput.moveRel
(但调用该方案经常被封)PyAutoGUI
pywin32
直接用win32api.mouse_event
, 参考原神钓鱼辅助pyinstaller打包即可, 最好用python3.6环境打包(已知有小伙伴用3.7打包exe出错)
也推荐使用embedded-python来打包, windows打包神器, 直接一个独立python, stable-diffusion这些大模型也是用它来免安装python环境直接运行的, 推荐了解下
ctypes.windll.user32.SendInput
来实现, 但容易被封pynput
录制的原神脚本都是相对位移, 而dm.MoveR
和pydirectinput.moveRel
受限于鼠标加速度(系统加速度或者鼠标自带加速).想要完全复刻必须游戏有没有仅使用原始输入(Raw Input setting)功能, 不然总会有误差.