AutoHotKey自动热键(三)热键的<有条件生效>与<无条件生效>

  • 监听的两种状态

  • 热键在监听时,可以区分为满足某种条件时生效(局部热键)和无条件生效(全局热键)
  • 打个比方,有条件生效的热键,可以作为绑定某个程序的热键, 当这个目标程序启动时这些热键才会进行监听,而未启动时则不监听,不影响其它程序,也就是把热键的监听范围缩小在希望的范围之内

  • 实例代码

#If, GetKeyState("F10")
    !p::
    {
        MsgBox, ALT+P被按下,该热键只在只在F10被按住时才生效(满足条件时生效)
        Return
    }
#If

^F9::
{
    MsgBox, CTRL+F9被按下,局部热键后面如果要衔接全局热键时必须在局部热键末尾以 #If 结束,否则此处的全局热键会被视为局部热键,备注:<不同的局部热键之间可忽略>(无条件生效)
    Return
}

#IfWinActive, 计算器
    !p::
    {
        MsgBox, ALT+P被按下,该热键只在活动窗口名为<计算器>时生效(满足条件时生效)
        Return
    }

#IfWinNotActive, 计算器
    !p::
    {
        MsgBox, ALT+P被按下,该热键只在活动窗口名非<计算器>时生效(满足条件时生效)
        Return
    }


#IfWinExist, 计算器
    ^!p::
    {
        MsgBox, CTRL+ALT+P被按下,该热键只在所有窗口中存在以<计算器>为名时生效,不论是否激活(满足条件时生效)
        Return
    }

#IfWinNotExist, 计算器
    ^!p::
    {
        MsgBox, CTRL+ALT+P被按下,该热键只在以<计算器>为名称的窗口不存在时才生效(满足条件时生效)
        Return
    }

  • 有条件生效

  • 可以看到#If, GetKeyState("F10")这下面的热键只在F10这个键被按下之后才会生效,这就是局部热键

  • 无条件生效

  • 后面的^F9::这个是衔接的全局热键,这里要注意的就是局部热键的结尾一定要加上#If才行,否则统统会被当成局部热键

  • 四种窗口状态

  • #IfWinActive, 计算器 当活动窗口名称为"计算器"时生效的热键
  • #IfWinNotActive, 计算器 当活动窗口名称非"计算器"时生效的热键
  • #IfWinExist, 计算器 当所有窗口中有"计算器"时生效的热键
  • #IfWinNotExist, 计算器当所有窗口中无"计算器"时生效的热键
  • #If 局部热键结束符
  • 此处的计算器 就是WINDOWS自带的计算器,可以打开来测试一下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值