A_HotkeyModifierTimeout

A_HotkeyModifierTimeout 是一个内置变量, 可影响带有 Ctrl, Alt, WinShift 热键修饰符的 Send 的行为. 具体来说, 它定义了按下热键后, 热键的修饰符按键被认为仍被按住的时间. Send 使用它来决定是否在暂时释放修饰符按键后将其推回原位.

A_HotkeyModifierTimeout 可以用来获取或设置一个整数, 代表以毫秒为单位的时间间隔长度. 如果为 -1, 则永远不会超时(修饰符按键总是在 Send 后被再次按下). 如果为 0, 则始终超时(修饰符按键永远不会被再次按下).

默认设置为 50 毫秒(ms).

备注

此变量在以下情况下无效:

为了说明此指令的效果, 请参考这个例子: ^!a::Send "abc".

执行 Send 函数时, 它会首先释放 CtrlAlt, 以便正确发送字符. 在发送所有键击后, 此函数不知道它是否可以安全的推回 CtrlAlt 到按下状态(以匹配用户是否仍然按下它们). 但是, 如果经过的时间少于指定的毫秒数, 则将假定用户尚未有释放键的机会, 因此它将推回它们以使其符合其物理状态. 否则, 修饰键将不会被推回按下状态, 用户必须再次按下它们来修饰同一个或其他的按键.

超时值应设置为小于用户通常在释放热键的修饰键之前按住它们的时间. 否则, 即使用户没有实际按下修饰键, 修饰键也可能恢复到向下位置(保持按下).

在下列情况中您可以减少或不使用此变量:

GetKeyState

示例

将热键修饰符超时设置为 100 毫秒, 而不是 50 毫秒.

A_HotkeyModifierTimeout := 100