2013-07-14 45 views
0

我有三個USB鍵盤連接到我的電腦。我想用下面的代碼激活特定鍵盤的大寫鎖定。問題是,當我運行代碼時,三個鍵盤的大寫鎖定被打開。請幫忙!如何連接多個鍵盤時打開特定USB鍵盤的CAPS LOCK

import java.io.*; 
import java.util.*; 
import javax.comm.*; 
import java.awt.*; 
import java.awt.event.*; 

public class TestKeys{ 

    public static void main(String ted[]){ 
     TestKeys c = new TestKeys(); 
     c.capslock(true); 
    } 

    public boolean capslock(boolean b){ 
     Toolkit tool = Toolkit.getDefaultToolkit(); 
     try{ 
      tool.setLockingKeyState(KeyEvent.VK_CAPS_LOCK,b); 
     } 
     catch(Exception e){ 
      return false; 
     } 
     return true; 
    } 
} 

回答

0

你不能。大寫鎖定,數字鎖定和滾動鎖定在許多BIOS和操作系統上全局設置。

在Linux或Windows上進行測試,點擊用於切換大寫鎖定,數字鎖定和滾動鎖定的硬件按鍵,也可以在我的第二個鍵盤上進行切換,因此可能無法以此方式在軟件中切換它。

請注意,您無法禁用鍵盤或端口,請執行此操作,然後重新啓用它,因爲iit會涉及大量需要Linux上的JNI或devfs的特定於操作系統的hack。當端口重新啓用時,即使指示燈不亮,重新連接的鍵盤仍將處於鎖定狀態。

+0

對我來說太糟糕了。我不能禁用其他兩個鍵盤的端口/集線器(通過軟件),然後運行代碼?不會禁用這兩個鍵盤的其他端口塊通信? –

+0

@TedMad這取決於操作系統。最有可能的是,並非沒有很多低級別的黑客。此外,一旦鍵盤重新連接,即使他們的燈不接受,他們也會獲得大寫鎖定狀態。 – hexafraction