热键 您所在的位置:网站首页 怎么关闭自定义标识 热键

热键

2024-07-08 21:22| 来源: 网络整理| 查看: 265



热键 - 定义 & 使用 | AutoHotkey v2 热键(鼠标, 控制器和键盘快捷键) 目录 介绍和简单示例 热键修饰符 上下文相关的热键 自定义组合键 其他特性 鼠标滚轮热键 热键技巧和备注 Alt-Tab 热键 命名的函数热键 介绍和简单示例

热键有时也称为快捷键, 因为它们能简便地触发动作(例如运行程序或键盘宏). 在下面的例子中, Win+N 被设置为启动记事本. 磅的符号 [#] 表示 Win 键, 它被称为 修饰符:

#n:: { Run "notepad" }

在上文中, 大括号的作用是为热键定义一个函数主体. 左大括号也可以与双冒号指定在同一行, 以支持 OTB(One True Brace) 样式. 然而, 如果热键只需要执行一行, 那么这一行可以列在双冒号的右边. 换句话说, 大括号是隐式的:

#n::Run "notepad"

当热键被触发时, 热键的名称作为其第一个参数传递, 参数名为 ThisHotkey(不包括尾部的冒号). 例如:

#n::MsgBox ThisHotkey ; 报告 #n

除了少数例外, 这与内置变量 A_ThisHotkey 相似. 该参数的名称(首个参数的名称, 例如 ThisHotkey) 可以通过使用命名函数来改变.

要在热键中使用多个修饰键, 那么需要把它们连续地列出来(顺序无关紧要). 下面的例子中使用 ^!s 来表示 Ctrl+Alt+S:

^!s:: { Send "Sincerely,{enter}John Smith" ; 此行发送键击到活动(最前面的) 窗口. } 热键修饰符

在定义热键时您可以使用下列修饰符:

符号 说明 #

Win (Windows 徽标键).

包含 Win 键的热键(例如 #a) 会等待 Win 键被释放后才发送任何包含 L 键击的文本. 这样避免了这种热键中的 Send 锁定 PC. 这种行为适用于除 SendPlay(这里不需要), 盲从模式和文本模式以外的所有发送模式.

注意: 按下包含 Win 键的热键可能会导致额外的模拟击键(默认为 Ctrl 键). 请参阅 A_MenuMaskKey.

!

Alt

注意: 按下包含 Alt 键的热键可能会导致额外的模拟击键(默认为 Ctrl 键). 请参阅 A_MenuMaskKey.

^ Ctrl + Shift & 和符号可以用来组合任意两个按键或鼠标按钮, 让它们成为自定义热键. 有关详情, 请参阅下文. 键才可以触发. > 成对按键右边的那个按键. !

AltGr(译者注: 美式标准键盘上没有该键). 如果您键盘布局中含 AltGr 键而非右 Alt 键, 那么这一系列符号一般可用于表示 AltGr. 例如:

!m::MsgBox "你按下的是 AltGr+m." 或者, 让 AltGr(alternate graph 或 alternate graphic) 本身成为热键, 请使用下面的热键(不像上面出现的任何热键):

LControl & RAlt::MsgBox "你按下的是 AltGr 本身." *

通配符: 即使额外的修饰键被按住也能触发热键. 这常与重映射按键或按钮组合使用. 例如:

*#c::Run "calc.exe" ; Win+C, Shift+Win+C, Ctrl+Win+C, 等都会触发此热键. *ScrollLock::Run "notepad" ; 即使在按住其他修饰键时按下 ScrollLock 也会触发此热键.

通配符热键总是使用键盘钩子, 就像任何被通配符热键覆盖的热键一样. 例如, *a:: 的存在会导致 ^a:: 总是使用钩子.

~

触发热键时, 热键中按键原有的功能不会被屏蔽(对操作系统隐藏). 在下面的两个例子中, 用户的鼠标按钮点击会被发送到活动窗口:

~RButton::MsgBox "You clicked the right mouse button." ~RButton & C::MsgBox "You pressed C while holding down the right mouse button."

与其他前缀符号不同, 可以在热键的某些变体中使用颚化符(波浪号) 前缀而其他的不使用. 然而, 如果应用于颚化符(波浪号) 前缀的任何自定义组合键没有被关闭或暂停, 它会影响那个前缀键在 所有 组合中的行为.

用于替代 alt-tab 的特殊按键总是忽略颚化符(波浪号) 前缀.

如果把颚化符(前缀键) 用在自定义修饰键中且此修饰键自身也作为热键, 则在按下此修饰键时会触发热键而不会被延迟到按键释放的时候. 例如, 上文中 ~RButton 热键在按下此按键时就会触发.

如果颚化符前缀只应用于自定义组合键, 而不应用于非组合热键, 按键的原生功能将持续被屏蔽. 例如, 下面的脚本, 按住 Menu 键将会一直显示一个工具提示而不会触发上下文菜单:

AppsKey::ToolTip "Press < or > to cycle through windows." AppsKey Up::ToolTip ~AppsKey & ::Send "!{Esc}"

如果键盘热键的一个变体具有颚化修饰符, 那么热键总是使用键盘钩子.

$

通常只在脚本使用 Send 函数发送包含了热键自身的按键时才需要使用此符号, 此时可以避免触发它自己. $ 前缀强制使用键盘钩子来实现此热键, 作为副作用这样阻止了 Send 函数触发它自己. $ 前缀相当于在此热键定义之前的某个位置指定了 #UseHook.

$ 前缀对于鼠标热键不起作用, 因为它们始终使用鼠标钩子. 它对于已经启用了键盘钩子的热键同样无效, 包括任何带有颚化符(~) 或通配符(*) 修饰的热键, key-up 热键以及自定义组合. 要确定特定热键是否使用键盘钩子, 请使用 ListHotkeys 查看.

#InputLevel 和 SendLevel 对 Send 函数是否触发热键和热字串提供了额外的控制功能.

UP

单词 UP 可以跟在热键名后面使得在释放按键时触发热键, 而不是按下时. 下面的例子把左 Win 重映射为左 Ctrl:

*LWin::Send "{LControl down}" *LWin Up::Send "{LControl up}"

"Up" 也可以用于普通热键中, 例如: ^!r Up::MsgBox "You pressed and released Ctrl+Alt+R". 它还可以用在组合键(例如 F1 & e Up::)

限制: 1) "Up" 不能和控制器按钮一起使用; 2) 在没有普通/按下热键副本的 "Up" 热键会完全接管那个按键以防被卡住. 避免这种情况的一种方法是添加颚化符(波浪号) 前缀(例如 ~LControl up::)

"Up" 热键和其 key-down 副本(如果有的话) 总是使用键盘钩子.

相关提示, 类似于上面的一种技术是让热键成为前缀键. 好处是尽管热键会在按键松开时激发, 但仅在您之前按住此前缀键时没有按其他任何键的情况下才会如此. 例如:

LControl & F1::return ; 至少在 "&" 前面使用左 control 键一次, 来让它成为前缀键. LControl::MsgBox "You released LControl without having used it to modify any other key."

注意: 请参阅按键列表来了解键盘按键和鼠标/控制器按钮的完整列表.

多个热键可以垂直地叠放来让它们执行相同的动作. 例如:

^Numpad0:: ^Numpad1:: { MsgBox "Pressing either Control+Numpad0 or Control+Numpad1 will display this message." }

通过不为按键或按键组合的热键指定任何操作可以在整个系统中完全禁用它们. 下面的例子中禁用了右 Win 键:

RWin::return 上下文相关的热键

#HotIf 指令可以用来让热键根据不同的条件执行不同的动作(或什么都不做). 例如:

#HotIf WinActive("ahk_class Notepad") ^a::MsgBox "你在记事本中按下了 Ctrl-A. 而在其他窗口中按下 Ctrl-A 将原样发送." #c::MsgBox "你在记事本中按下了 Win-C." #HotIf #c::MsgBox "你在非记事本程序中按下了 Win-C." #HotIf MouseIsOver("ahk_class Shell_TrayWnd") ; 有关 MouseIsOver, 请参阅 #HotIf 的示例 1. WheelUp::Send "{Volume_Up}" ; 在任务栏上滚动滚轮: 增加/减小音量. WheelDown::Send "{Volume_Down}" ; 自定义组合键

通常快捷键组合由可选的前缀/修饰键(Ctrl, Alt, Shift 和 LWin/RWin) 和单个后缀键组成. 标准的修饰键就是这样设计的, 所以按下时通常没有立即效果.

两个按键(包括鼠标, 但不包括控制器按钮) 的自定义组合热键可以通过在它们之间使用 "&" 来定义. 因为它们是为与前缀键一起使用而设计的, 所以自定义组合有以下特殊行为:

除非前缀键是标准的修饰键或可切换键(如 CapsLock), 否则前缀键将失去其原来的功能. 如果前缀键还用作另一个热键中的后缀, 则默认情况下, 该热键在释放时触发, 如果它用于激活自定义组合, 则根本不会触发. 如果同时有 key-down 热键和 key-up 热键, 两个热键将同时被触发. 如果波浪号前缀

注意: 对于带有标准修饰键的组合, 通常最好使用标准语法. 例如, 使用



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有