我有一个相当简单的想法,我认为 AutoHotKey 可以帮助我。本质上,当我使用 ctrl-v 粘贴时,我希望它传输第二个 ctrl-v,以便我粘贴两次。我的开发环境中有几个键绑定设置为各种 ctrl 按键的双击,所以我还希望能够将脚本扩展到除 ctrl-v 之外的其他各种键。不过这是我的第一个 AutoHotKey 脚本,我很难开始,因为这里有很多东西需要消化。谢谢!
答案1
在 AutoHotkey 中,双击键非常简单。
#IfWinActive
~^v::SendInput, ^v
一些附加项目:
#IfWinActive
1) 您可以通过使用和指定 WinTitle 的窗口名称、exe 名称、类等来定制哪些程序将接收双重发送或不接收双重发送
2) 热键定义中的波浪号表示脚本不会阻止原始按键通过。如果您想要完全控制原始按键是否通过,您可以删除波浪号(这将阻止原始按键),然后自己发送两次(或者根本不发送,或者您可能希望在不注册原始按键的情况下执行任何操作)。
3)如果需要,你可以通过将函数扩展为不止一行热键定义并使用Return
语句来添加延迟
4) 您可以使用 A_ThisHotkey 对多个热键使用相同的代码。
5) 如果需要,您还可以使用 * 修饰符允许使用多个修饰符的按键。这可能与下面的示例代码不完全兼容,但这只是需要注意的一点。
以上1-4项的示例:
; this will execute the code to send duplicate keystrokes
; for any of the hotkeys defined, in this case, a,b,c, or Ctrl+V
#IfWinActive ahk_exe notepad.exe
~a::
~b::
~c::
~^v::
Sleep 200 ; Possibly use or adjust for reliability if needed
SendInput % SubStr(A_ThisHotkey, 2) ; Remove tilde and send duplicate keystrokes for whichever hotkey executed
Return