2010-08-03 54 views
2

有沒有辦法攔截Java中的系統密鑰,以便事件不會傳播到操作系統? Ctrl + Alt + Del或其他安全相關組合無關緊要,主要問題是例如Windows密鑰。攔截/禁用Java中的系統密鑰

有問題的程序是一個全屏應用程序,通過專有協議執行一些遠程操作。目前我唯一的想法是通過JNI解決這個問題,而Windows的解決方案似乎很簡單,我不確定Linux和MAC OS X.

我更喜歡有點標準的解決方案,也許有Java遊戲等等。

回答

1

Java在操作系統(OS)之後處理鍵擊,所以Java不能「攔截」它們。雖然,你可以在C/C++中編寫OS特定的東西,攔截鍵擊並使用JNI在Java中調用它。

0

這似乎是fixed in Java 5,所以你可以有一個鏡頭。顯然,Java API中的KeyEvent類公開了兩個Microsoft Windows鍵盤特定事件 - VK_WINDOWS(用於左右winkeys)和VK_CONTEXT_MENU(用於上下文菜單鍵)。

通過實現一個KeyListener來捕獲這些事件是非常有可能的,但是應該預先警告,如果你試圖單獨捕獲Winkey事件,那麼在Java可以處理它之前,你必須首先將操作系統的事件處理程序。