当连接了多个键盘时,如何打开特定usb键盘的CAPS LOCK



我的电脑上连接了三个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。当端口重新启用时,重新连接的键盘仍将处于锁定状态,即使其指示灯另有指示。

最新更新