在JavaScript / jQuery中捕获Ctrl-Alt-Del

在玩jQuery / JavaScript时我遇到了这个问题。 我可以捕获AltCtrl键,但不是Del ,当然也不是所有这些都在一起。

$(document).ready(function() { $("#target").keydown(function(event) { if (event.ctrlKey && event.altKey && event.keyCode == '46') { alter("Ctrl-Alt-Del combination"); } }); }); 

是否可以将所有这三个键一起捕获?

我不确定其他操作系统,但我知道在Windows上, Ctrl + Alt + Del是一个系统按键,它在顶级截取,始终由Windows拦截。 据我所知,它并没有从那里进一步传递,让你知道从它发出的任何东西都是正式的。

我知道对于Gnome(我相信KDE),点击它会拉出关闭对话框,因此被窗口管理器捕获,而不是传递。

因此,除非Mac忽略它,否则,由于它对操作系统的魔力,你无法获得特定的组合。

编辑:只是我注意到的,你的代码中没有alter alert 。 我不认为它会像这样工作。

我不认为这是可能的。

您可以看到,各种用户输入,无论是通过键盘还是鼠标或任何IO设备,都以消息的forms通过Windows传递给您的应用程序。 但是,有一些专用消息在Windows操作系统级别捕获和处理。 Ctrl + Alt + Del就是这样一种操作。 Windows不会再传递此消息。

如何拦截所有关键事件,包括ctrl + alt + del和ctrl + tab?

… 可能不是。

搜索之后,我发现了这个, http://www.quirksmode.org/js/keys.html它基本上说不同的浏览器和不同的操作系统将获得del键的不同行为。 如果在Windows上使用Alt + Ctrl + Del ,则Windows会在检测到之前显示任务管理器,这会丢失未检测到C + A + D的焦点。