</head> <body> <h1>高级热键功能</h1> <h2 id="toc">目录</h2> <ul> <li><a href="#general">常规</a> <ul> <li><a href="#easy-to-reach">重映射容易按到但却很少使用的按键</a></li> <li><a href="#keys-as-modifiers">使用任意键作为修饰符</a></li> <li><a href="#AltTab">让鼠标滚轮执行 Alt-Tab</a></li> <li><a href="#keyboard-to-mouse">使键盘成为鼠标按键</a></li> <li><a href="#context-sensitive">让你的热键是上下文相关的</a></li> <li><a href="#hotstrings">定义在键入时展开的缩写</a></li> </ul> </li> <li><a href="#gaming">游戏</a> <ul> <li><a href="#wear-and-tear">减少手指的磨损</a></li> <li><a href="#mouse-hotkeys">创建鼠标热键</a></li> <li><a href="#pass-through">创建 "穿透" 热键</a></li> <li><a href="#game-actions">在屏幕上自动化游戏动作</a></li> <li><a href="#keyboard-hook">使用键盘钩子</a></li> </ul> </li> <li><a href="#related">相关主题</a></li> </ul> <h2 id="general">常规</h2> <h3 id="easy-to-reach">重映射容易按到但却很少使用的按键</h3> <p>键盘上一些很容易按到的键却不经常使用. 我们要让这些键变得更有用. 例如, 如果您很少使用右 <kbd>Alt</kbd>, 那么可以让它执行常用的操作:</p> <pre>RAlt:: MsgBox You pressed the right ALT key. return</pre> <p>您甚至可以在保持右 <kbd>Alt</kbd> 原来的功能的同时, 把它作为其他热键的 "前缀" 键来实现上述功能. 在下面的例子中, 右 <kbd>Alt</kbd> 作为前缀键, 这让它自动地像平常那样修饰其他 <strong>所有</strong> 的按键. 但如果您按下并放开右 <kbd>Alt</kbd> 期间没有按下其他键, 那么它的热键功能(上面的例子) 会立即生效:</p> <pre>RAlt &amp; j::AltTab</pre> <h3 id="keys-as-modifiers">使用任意键作为修饰符</h3> <p>修饰符不再局限于 <kbd>Ctrl</kbd>, <kbd>Alt</kbd>, <kbd>Shift</kbd> 和 <kbd>Win</kbd>; 您可以使用 <strong>任意</strong> 两个按键或鼠标按钮组成自定义热键. 例如: 按住 Numpad0 且按下 Numpad1 来执行热键(<code>Numpad0 &amp; Numpad1::</code>); 按住 <kbd>CapsLock</kbd>并按下另一个键或点击鼠标右键(<code>CapsLock &amp; RButton::</code>). 此时(运行热键时), <kbd>CapsLock</kbd> 的状态(大写或小写) 不会发生改变. 更多细节请参阅<a href="Hotkeys.htm#combo">自定义组合键</a>.</p> <h3 id="AltTab">让鼠标滚轮执行 Alt-Tab</h3> <p>使用鼠标滚轮(或您选择的其他任意键) 完全代替 Alt-Tab. 点击滚轮来显示窗口选择菜单, 转动滚轮来浏览菜单. 当 Alt-Tab 菜单没有出现时滚轮仍保持正常的功能. 语法:</p> <pre>MButton::AltTabMenu WheelDown::AltTab WheelUp::ShiftAltTab</pre> <h3 id="keyboard-to-mouse">使键盘成为鼠标按键</h3> <p>让键盘按键 <strong>成为</strong> 鼠标按钮, 或当您按住某个键或鼠标按钮时持续重复某个动作. 有关示例请参阅<a href="misc/Remap.htm#RemapMouse">重映射页面</a>.</p> <h3 id="context-sensitive">让你的热键是上下文相关的</h3> <p> 让最容易使用的热键根据不同的窗口类型执行适合的操作. 在下面的例子中, 右 <kbd>Ctrl</kbd> 会根据活动窗口是记事本还是计算器执行不同的操作:</p> <pre>#IfWinActive ahk_class Notepad RControl::Send, ^s <em>; 在记事本中保存当前文件.</em> #IfWinActive Calculator RControl::Send, ^c!{tab}^v <em>; 复制计算器的结果到之前的活动窗口.</em></pre> <p>请参阅 <a href="lib/_IfWinActive.htm">#IfWinActive</a> 了解详情.</p> <h3 id="hotstrings">定义在键入时展开的缩写</h3> <p>也称为<a href="Hotstrings.htm">热字串</a>. 不需要经过特殊的训练或脚本编写经验. 例如, 包含下列语句的脚本执行后, 在您输入 ceo, cfo 和 btw 时会自动扩展它们:</p> <pre>::ceo::Chief Executive Officer ::cfo::Chief Financial Officer ::btw::by the way</pre> <h2 id="gaming">游戏</h2> <h3 id="wear-and-tear">减少手指的磨损</h3> <p>别人拼血流汗时, 您只需动动手指, 就可执行一系列复杂的操作. 因为能使用几乎<a href="KeyList.htm">任何按键</a>作为热键, 包括单个字母, 方向键, 数字小键盘按键, 甚至是修饰键本身(Ctrl, Alt, Win 和 Shift).</p> <h3 id="mouse-hotkeys">创建鼠标热键</h3> <p>创建鼠标热键, 包括鼠标滚轮按钮(MButton) 和往上/往下/往左/往右转动滚轮(WheelUp, WheelDown, WheelLeft 和 WheelRight). 您还可以把键盘键和鼠标按钮组合使用. 例如, 按住 <kbd>Ctrl</kbd> 时点击鼠标右键可以写为 <code>^RButton::</code>.</p> <h3 id="pass-through">创建 "穿透" 热键</h3> <p>例如, 点击鼠标左键一方面触发热键, 另一方面点击仍可以被发送到游戏中(语法: <code>~LButton::</code>).</p> <h3 id="game-actions">在屏幕上自动化游戏动作</h3> <p>使用例如 <a href="lib/PixelSearch.htm">PixelSearch</a>, <a href="lib/PixelGetColor.htm">PixelGetColor</a> 和 <a href="lib/ImageSearch.htm">ImageSearch</a> 的命令可以自动化游戏操作.</p> <h3 id="keyboard-hook">使用键盘钩子</h3> <p>使用<a href="lib/_UseHook.htm">键盘钩子</a>来实现热键, 当游戏占用较多 CPU 资源时, 这种方法会比其他方法响应的更及时. 使用钩子还可以解除在游戏中只有某些按键才可以 "映射" 到游戏动作上的限制.</p> <h2 id="related">相关主题</h2> <ul> <li><a href="Hotkeys.htm">热键</a></li> <li><a href="Hotstrings.htm">热字串</a></li> <li><a href="misc/Remap.htm">重映射按键</a></li> </ul> </body> </html>