我的电脑上连接了三个usb键盘。我想用下面的代码激活特定键盘的大写锁定。问题是,当我运行代码时,三个键盘的caps锁都打开了。请帮忙!
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;
}
}
您不能。大写锁定、数字锁定和滚动锁定在许多BIOS和操作系统上都是全局设置的。
在Linux或Windows上测试,点击硬件键切换大写锁定、数字锁定和滚动锁定,也会在我的第二个键盘上切换,所以在软件中可能不可能以这种方式切换。
请注意,你不能禁用键盘或端口,这样做,然后重新启用它,因为这将涉及大量特定于操作系统的黑客攻击,需要在Linux上使用JNI或devfs。当端口重新启用时,重新连接的键盘仍将处于锁定状态,即使其指示灯另有指示。