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

Automator工作流实现QuickShade.app运行状态切换求助

解决Automator+AppleScript实现QuickShade状态切换的问题

完整可运行脚本

以下是满足需求的完整AppleScript代码,包含对话框交互、可靠的应用状态检测与切换逻辑:

on run {input, parameters}
    -- 弹出包含Cancel/Toggle选项的对话框
    set dialogResult to display dialog "Toggle QuickShade" buttons {"Cancel", "Toggle"} default button "Toggle"
    
    -- 仅在用户点击Toggle时执行后续操作
    if button returned of dialogResult is "Toggle" then
        set appName to "QuickShade"
        
        -- 检测应用是否正在运行
        tell application "System Events"
            set isRunning to exists process appName
        end tell
        
        if isRunning then
            -- 退出运行中的应用
            tell application appName to quit
            -- 短延迟确保进程完全退出,避免状态检测混乱
            delay 1
        else
            -- 启动未运行的应用
            tell application appName to activate
        end if
    end if
    return input
end run

针对你之前问题的修复说明

  • 缺失对话框逻辑:你之前的脚本未实现需求中的Cancel/Toggle弹窗,上述代码通过display dialog补全了该交互,且仅响应用户的Toggle操作。
  • 应用状态检测问题:
    • 替换了你之前繁琐的计数检测方式,改用exists process appName更简洁可靠;
    • 你之前的脚本未将<app name>替换为实际的"QuickShade",这是无法识别目标应用的核心原因。
  • input/parameters参数说明:这是Automator工作流的标准入口参数,input接收工作流上一步的传递数据,parameters是脚本的自定义配置参数,此场景下无需使用,保留即可不影响执行。
  • 避免重复切换崩溃:添加delay 1确保应用完全退出后再结束脚本,避免短时间重复触发导致的状态检测错误。

Automator工作流配置步骤

  1. 打开Automator,新建快速操作(Quick Action);
  2. 在左侧资源库中拖入运行AppleScript组件,替换为上述脚本;
  3. 顶部设置:「工作流收到」选择「没有输入」,「位于」选择「Touch Bar」;
  4. 保存工作流(如命名为“Toggle QuickShade”),即可在Touch Bar中看到对应按钮。

权限注意事项

  • 前往系统设置 > 隐私与安全性 > 辅助功能,勾选Automator及Script Editor(若用脚本编辑器测试);
  • 若仍无法控制QuickShade,检查系统设置 > 隐私与安全性 > 输入监控,同样勾选相关应用。

内容的提问来源于stack exchange,提问作者Alexander-Marckus Edwards

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:32:40