AutoHotKey - 如何在IF语句中使用组合键?

时间:2016-03-05 06:08:19

标签: autohotkey

我正在尝试禁用Alt + F4,但是当我按下Windows Key + Q时我想启用它。到目前为止,我已经得到了这个无效。

#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.

if (#q)
{
    Send !{F4}
    Return
} else {
    !F4::Return
}

2 个答案:

答案 0 :(得分:0)

 ; autoexecute section:
 Alt_F4_enabled:= false
 ; ...
     return   ; end of autoexecute section

#q:: Alt_F4_enabled:= true

!F4::
If Alt_F4_enabled
{
    Send !{F4}
    Alt_F4_enabled:= false
}
else
    return   ; do nothing
return

答案 1 :(得分:0)

关于#q!F4::Return:这些是 commansd,它们是热键,因此隐含地包含return。您不能在可执行文件中使用它。有关详细信息,请参阅下面的http://ahkscript.org/docs/misc/Remap.htm#Remarks

你不想在应该执行的行之间某处返回,是吗。

(另见我的回答here

要切换热键操作,我更喜欢使用Hotkey 命令link):

hotkey, !F4, closeWindow, ON ; this is a command. "creates" a hotkey

closeWindow:  ; this is a label
    send !{f4}
return

#q:: ; this is a hotkey
    hotkey, !F4, closeWindow, TOGGLE ; this is a command. disables or enables the hotkey
return

这样做,可以轻松动态地为!F4提供更多功能。

代码未经过测试

但事实上,没有什么理由不能用户12344312257994344这样做。