从未真正使用过 AutoHotkey,或者做过太多的编程,但我希望有人可以帮助我创建一个脚本来执行以下操作;
当按下 CTRL+ALT+DEL 时 > 改为发送 CTRL+ALT+END。
答案1
@Dave 的答案是正确的。Windows 明确拒绝捕获或模拟该组合键的能力。AutoHotkey 所能做的就是解决这个问题。以下是 AHK 帮助文件中的一些参考资料:
块输入
当 BlockInput 生效时,用户输入会被阻止,但 AutoHotkey 可以模拟按键和鼠标点击。但是,由于 Windows API 功能,按 Ctrl+Alt+Del 将重新启用输入。
发送 / SendRaw / SendInput / SendPlay / SendEvent(一般评论)
由于操作系统不允许模拟 CTRL-ALT-DELETE 组合键,因此执行类似的操作
Send ^!{Delete}
将不会产生任何效果。
发送播放
与 SendInput 和 SendEvent 不同, 用户可以通过按 Control-Alt-Del 或 Control-Escape 来中断 SendPlay。发生这种情况时, 其余的击键不会被发送, 但脚本会继续执行, 就像 SendPlay 已正常完成一样。
答案2
我不相信 Windows 操作系统会允许你重新映射该组合
然而,CTL+ALT+DEL 是基于 Windows NT 的操作系统(NT、2000 和 XP)上的特殊按键序列。在这些系统上,CTL+ALT+DEL 被称为特殊注意序列(或 SAS),它深深地嵌入 NT 安全系统中,因此无法在代码中阻止此序列。
即使您可以,根据您的评论,这也意味着要更新每个人的机器......这意味着用户根本无法使用该组合,除非您还以某种方式检测到 RDP 会话是否打开。
相反,您需要解决这个问题,即培训员工 CTRL+ALT+DEL 用于本地计算机,而 CTRL+ALT+END 用于远程会话。