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

pyautogui热键Windows正常运行Mac失效及窗口焦点切换问题咨询

解决方案

核心思路

macOS下需要先通过系统原生能力将焦点切换到目标浏览器,等待焦点切换完成后再触发热键,这里推荐直接调用AppleScript实现,无需额外安装第三方依赖。

具体实现步骤

  • 首先在代码头部引入需要的模块:subprocess、time
  • 在macOS逻辑分支中,先调用AppleScript激活目标浏览器,添加0.2~0.5秒的延迟保证焦点切换完成,再执行热键触发操作

修改后的代码示例

import subprocess
import time
import pyautogui
# 此处补充你原有代码里的platform、foo变量定义逻辑

def hotkey() -> None:
    """function to open the corresponding phraseexpress form (with a hotkey)"""
    
if foo == "Note 2":
        if platform == "darwin":
            print("Test before hotkey")
            # 切换焦点到目标浏览器,以下为Chrome示例,可根据实际使用的浏览器修改应用名
            subprocess.run(
                ["osascript", "-e", 'tell application "Google Chrome" to activate'],
                capture_output=True
            )
            # 等待焦点切换完成,可根据设备性能调整延迟时长
            time.sleep(0.3)
            pyautogui.hotkey('ctrl', 'shift', '2')
        if platform == "win32":
            pyautogui.hotkey('ctrl', 'shift', '2')

        print("You opened PhraseExpress for note 2")

额外注意事项

  • 权限配置:需要在「系统设置→隐私与安全性→自动化」中,给终端开启控制浏览器、PhraseExpress的权限
  • 热键冲突排查:如果修改后仍无响应,可以先检查系统「快捷键设置」中是否有其他功能占用了ctrl+shift+2的组合键
  • 浏览器名称适配:如果使用的是Edge、Firefox等其他浏览器,只需要把AppleScript里的应用名称改成对应名称即可,比如Microsoft Edge、Firefox

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:18:03