我想制定以下规则:当我按下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 键时会更有效,但在这种情况下,并不总是有效