2016-01-15 45 views
-1

我想在我的NetBeans项目禁用键盘热键如altctrlalt + f4ctrl + alt + dlt所以,虽然我的应用程序是如何禁用的Java Swing键盘热键

+1

你不能(也不应该)禁用'ctrl-alt-del',除非你本质上禁用了键盘。请参阅http://superuser.com/questions/142176/how-can-i-disable-the-ctrl-alt-del-key-combination-completely-on-xp-vista-7 – Krease

+0

我只是希望用户不能关闭或跳到任何种类的软件,甚至没有通过这些热键 – sahib

回答

0

那么,禁用键是一件困难的事情,但我想你能解决的问题的另一种方式:

yourFrameOrWindow.setAlwaysOnTop(true); 

这将使您的应用程序始终在屏幕上,如果它的全屏幕,然后你的问题是解决了,但这不会禁用ctrl + alt + del或其他关闭应用程序的尝试。

而对于按键的一些组合,我认为你可以在一个方法将它们映射onkeypress事件的再让它空,如下所示:

void onKeyPress(int keyCode){ 
    if(keyCode == 43){ 
     //do nothing 
    } 
} 

,但我认为对的组合键特定的听众。

+0

你能告诉我什么是43这里 – sahib

+0

你想要的密钥的代码,每个密钥都有一个代码。请参阅https://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html中的常量,我认为ASCII表格也会完成这项工作https://en.wikipedia。 org/wiki/ASCII –

+0

thanx我认为这应该工作 – sahib

3

您所要求的一种方式无人能开什么在 Netbeans中禁用Windows的全局键盘热键。这是不可能的,因为在Netbeans或任何其他Windows应用程序发现它们之前,两种组合键都是以内核级别的方式注册和拦截的。

有几种方法可以在Windows中禁用这些类型的热键,但这不能用Java以编程方式完成。相反,尝试谷歌搜索“禁用热键的Windows X”或“禁用CTRL + ALT +删除的Win​​dows X.

上的超级用户的回答提出了一种可能的注册表修复禁用CTRL + ALT + DEL在Windows 7的建议注册表编辑是:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe]

"Debugger"="Hotkey Disabled"

有禁用取决于你所运行的Windows版本和你具有对计算机访问的一种。如果没有管理员权限的某些快捷键的其他方式,任何解决方案将是困难的。

这也可以使用较低级别的语言(如C++甚至C#)进行问题处理,但我不认为任何Java库都可以截取并且低级别的键盘事件。

+0

我的用户是匿名的,我不能去他们的电脑并禁用它,我希望当他们打开我的软件时,他们不能关闭或做任何事情,直到应用程序关闭 – sahib

+0

@sahib - 说实话,这听起来像是病毒的好行为,但不是应用程序。除非您正在编写病毒,否则您需要重新考虑您的方法。 – Krease

+0

@chris - 只是认为它是一个atm软件,如果用户可以跳过这个软件,你会不会对它有害 – sahib