如何在 AutoHotKey 中将修饰符与热键一起使用

如何在 AutoHotKey 中将修饰符与热键一起使用

我有一个可以运行的 AHK 脚本,已经使用了一段时间。

我最近尝试在这个脚本中添加一个新行来运行一个函数透明屏幕锁定;即通过热键组合锁定 PC。根据程序的文档:

您可以通过使用“/s”开关执行此程序来通过脚本锁定屏幕:"Transparent Screen Lock.exe /s"

我当前的 AHK 脚本如下所示:

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

NumpadLeft::
Run C:\Program Files (x86)\Mozilla Firefox\firefox.exe
Return

NumpadUp::
Run C:\Program Files\Sublime Text 3\sublime_text.exe
Return

NumpadPgUp::
Run B:\Users\Me\AppData\Local\Wunderlist\Wunderlist.exe
Return

NumpadClear::
Run C:\Program Files\CyberGhost 6\CyberGhost.exe
Return

NumpadRight::
Run C:\Program Files\Adobe\Adobe Photoshop CS4 (64 Bit)\Photoshop.exe
Return

NumpadDown::
Run C:\Windows\System32\cmd.exe, B:\Users\Me\Desktop
Return

NumpadPgDn::
Run C:\cygwin64\bin\mintty.exe -, B:\Users\Me\Desktop
Return

#^!::
Run C:\Windows\SysWOW64\Transparent Screen Lock.exe /s
Return

根据AHK 文档#^!是键盘组合键的等效修饰键CtrlWinAlt,因此在保存并重新加载上述脚本后,按下这些键应该会运行 TSL-PRO 中的锁定功能。但实际上它什么也不做。其他程序热键的工作方式与以往一样。

我也尝试在没有参数的情况下运行脚本/s,但它仍然没有任何反应,所以看起来修饰符可能是罪魁祸首,尽管我不确定为什么。

我在这里遗漏了什么?

答案1

您使用的符号是热键修饰符,而不是键。列出修饰符后,您还需要列出一些键。

如果您想将 ++ 指定Ctrl为热键WinAlt您应该像这样更改脚本:

#^Alt::
Run C:\Windows\SysWOW64\Transparent Screen Lock.exe /s
Return

您还可以将 切换^Ctrl或者#将 切换为LWin或者RWin

查看可用热键列表这里以及可能的修饰符列表这里

编辑

正如 Hashim 在评论中提到的,上述脚本要求最后按下 Alt 键。要解决此问题,您可以将所有变体设置为热键:

#!Ctrl::
!^LWin::
!^RWin::
#^Alt::
Run C:\Windows\SysWOW64\Transparent Screen Lock.exe /s
Return

相关内容