2017-09-08 101 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系統資源? –