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

AutoHotkey 2中热键不满足条件时发送自身的代码疑问

关于AutoHotkey代码中default分支写法的正确性解答

结论

你的代码里的default分支写法完全正确,符合AutoHotkey v2的语法规范,也能实现你预期的“无满足条件时发送原热键”的需求。

详细说明

  • 语法合规性:AutoHotkey v2的switch语句中,default分支专门用于匹配所有未被case覆盖的场景,你的代码中default分支的位置和写法都符合官方语法要求。
  • 功能匹配:当appName不是指定的程序名称(比如"Code"、"Obsidian")时,会执行default里的Send命令,发送你定义的原热键,完全匹配你的需求。

可优化建议

为了提升代码的可维护性,可以做两处优化:

  1. 避免重复调用GetappName():可以把这个函数的调用逻辑抽成通用的工具函数,减少冗余代码。
  2. 用A_ThisHotkey代替硬编码的原热键:这样修改热键触发符时,不需要同步修改default分支里的内容,示例如下:
^p:: {
    appName := GetappName()
    switch appName {
        case "Code":
            Send "^+p"
        default:
            Send A_ThisHotkey
    }
    return
}

^n:: {
    appName := GetappName()
    switch appName {
        case "Obsidian":
            Send "!n"
        case "Code":
            Send "^!#n"
        default:
            Send A_ThisHotkey
    }
    return
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:35:00