是否可以忽略按下的键?

是否可以忽略按下的键?

我想制定以下规则:当我按下CTRL+ Alt+时Backspace,发送CTRL+ Delete

我创建了以下规则:

^!BS:: Send {ctrl down}{Del}{ctrl up}

但是有一个问题:当CTRL+Delete被发送时,Alt正在被按下。

因此,操作系统将此组合处理为CTRL+ Alt+ Delete

是否可以忽略按下的Alt

答案1

最好的选择:

^!BS::
   Keywait Alt
   Send ^{Del}
return

ctrl+alt+del 是一个重要的中断命令,因此 Windows 会尽力防止脚本和程序进入无法使用该命令的状态。我无法让操作系统从逻辑上取消按下 alt 键,因此最好的选择就是等待 alt 键自动取消按下。这意味着热键只会在释放时激活,而不是在按下时激活,因此您不能按住 ctrl 和 alt 并按下退格键来删除多个单词,每次都必须释放并按下所有三个键。

类似功能:

^!BS::Send ^{Right}^{BS}

(来自 user3419297 的评论)
我推荐其他选项而不是这个选项的原因是,这个选项并不总是与 ctrl+del 一样有效。例如,如果您在空格的左侧,ctrl+right 将只转到空格的右侧,然后 ctrl+backspace 仍将删除光标右侧的单词。或者,如果您在单词的中间,它将删除整个单词,而不仅仅是光标右侧的字母。此外,如果您反复按下它以删除直到文本块的末尾,它将在删除光标左侧的所有文本后继续删除光标右侧的文本。

在这种情况下,由于您使用的是 ctrl+alt+del,因此它不起作用,但使用send {blind}{Alt up}后跟其他任何组合键在取消按下 alt 键时会更有效,但在这种情况下,并不总是有效

相关内容