You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过键盘快捷键触发后台运行的Python宏脚本?

后台脚本全局快捷键实现方案(基于keyboard库)

原代码问题修正

你的代码存在几处关键错误,导致无法正常运行:

  1. 函数拼写错误:keyboard.add_hotkey被误写为keyboard.add.hotkey(多了一个点)
  2. 语法逻辑错误:add_hotkey不支持直接用exec包裹代码块,正确用法是传入函数对象
  3. 缺少脚本驻留逻辑:没有让脚本保持运行状态,执行后会直接退出,无法监听快捷键

修正后的完整代码

from pyautogui import click, moveTo
import time
import keyboard

def auto_buy_xp():
    # 定位初始按钮
    moveTo(1749, 753)
    click()
    time.sleep(0.4)

    # 点击购买载具
    moveTo(955, 973)
    click()
    time.sleep(0.4)

    # 输入XP数值
    moveTo(1308, 584)
    click()
    time.sleep(0.01)
    keyboard.write('1000000')
    time.sleep(0.3)

    # 确认消耗资源
    moveTo(851, 988)
    click()
    time.sleep(0.3)

    # 最终确认
    moveTo(859, 757)
    click()

# 注册全局快捷键Shift+A,触发自动操作函数
keyboard.add_hotkey('shift+a', auto_buy_xp)

# 保持脚本后台运行,持续监听快捷键
keyboard.wait()

关键说明

  • 函数封装:把所有自动操作逻辑封装成独立函数,既符合add_hotkey的参数要求,也提升了代码的可读性和可维护性。
  • 全局快捷键监听:keyboard.add_hotkey支持直接绑定快捷键组合和触发函数,无需额外复杂处理。
  • 脚本驻留:keyboard.wait()会让脚本一直处于运行状态,直到手动终止(比如按Ctrl+C),保证后台能持续捕获快捷键。
  • 权限要求:运行脚本时必须以管理员身份启动,否则keyboard库无法在其他窗口捕获全局按键事件。
  • 坐标兼容性:pyautogui使用的是绝对屏幕坐标,如果目标窗口位置变动,点击会失效,后续可以结合窗口定位库(如pygetwindow)计算相对坐标,提升稳定性。

内容的提问来源于stack exchange,提问作者Michael Franek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:53:15