python实现鼠标宏-按下鼠标侧键时按下键盘w自动跑路

一直按着w按键跑路很累,希望鼠标前进键按下时,帮我们一直按着w,鼠标后退键按下时,停止长按。使用 pynput库可以帮我们解决这个问题。

1
conda create -n KeyBoardSimulate python==3.9

切换到刚安装的环境

1
conda activate KeyBoardSimulate

安装依赖库: pynput

1
pip install pynput

打开PyCharm,新建项目,选择conda创建好的环境

/python%E5%AE%9E%E7%8E%B0%E9%BC%A0%E6%A0%87%E5%AE%8F-%E6%8C%89%E4%B8%8B%E9%BC%A0%E6%A0%87%E4%BE%A7%E9%94%AE%E6%97%B6%E6%8C%89%E4%B8%8B%E9%94%AE%E7%9B%98w%E8%87%AA%E5%8A%A8%E8%B7%91%E8%B7%AF/Pasted%20image%2020240113201643.png
编写代码 main.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from pynput import mouse  
from pynput.keyboard import Key, Controller  
  
"""  
PyCharm需要用管理员方式启动,否则游戏内输入无效!  
"""  
keyboard = Controller()  
  
def on_click(x, y, button, pressed):  
    if button == mouse.Button.x2:  # 当鼠标前进键按下时,按下w
        keyboard.press('w')  
  
    if button == mouse.Button.x1:  # 当鼠标后退键按下时, 释放w
        keyboard.release('w')  
  
# Collect events until released  
with mouse.Listener(on_click=on_click) as listener:  
    listener.join()

其中Button.x2对应鼠标侧键前进,Button.x1对应鼠标侧键后退,不同鼠标可能不一样。

脚本启动后你会发现:在游戏外面能正常监听鼠标以及模拟键盘,但是打开游戏后监听失效。解决办法是PyCharm以管理员身份运行后再运行脚本。

官方文档: https://pynput.readthedocs.io/en/latest/keyboard.html