2017-09-08 70 views
0

有没有办法在java中阻止键盘输入。我想要捕获java代码中的输入,但要阻止它发送到操作系统。Java块键盘按下

例如:我有记事本打开,我可以写得很好,但是当我按下按键的组合键捕捉输入,现在我不应该能够用我的键盘写。这种行为可能吗?

我知道如何捕捉按键,但键盘阻挡部分对我来说是个谜。

我试过Google搜索它,但我没有找到任何解决方案。

+0

键盘输入首先进入操作系统,然后分配给重点突出的应用程序,但可能有办法伪装它,总会有办法避开它 – MadProgrammer

+0

我可以问你为什么要这样的行为吗? –

+0

我想能够阻止意外按下我的NTB键盘。 –

回答

1

你必须明白:Java应用程序与JVM一起运行。 JVM不是操作系统。

因此您的方式访问资源属于操作系统是非常有限的。换言之:没有通用的交叉平台方式让Java应用程序能够“相交”任意控制台用户输入,以用于任意其他应用程序。

想象一下,你是一个坐在公共汽车上的人 - 就像其他人一样。你无权转向同行乘客,并要求他们出示护照或其他物品。和其他人一样,你只是公交车上的一个人。同样在这里:一个Java应用程序缺乏用于控制其他进程的手段。

当您特别询问Windows平台时:可能会有一些使用JNI和特定本地调用的选项。例如,请参见here

所以,确切地说:一般情况下是不可能的,但取决于您的操作系统,可能有方法,例如使用JNI。

+0

哦,这就是我不想听到的答案:(我知道它的另一个问题,但它可能在其他语言中做到像maybye C#这在我的猜测应该有更好的控制Windows系统资源? –