Java 当连接多个键盘时,如何打开特定usb键盘的大写锁定

Java 当连接多个键盘时,如何打开特定usb键盘的大写锁定,java,keyboard,usb,toolkit,Java,Keyboard,Usb,Toolkit,我的电脑上有三个usb键盘。我想用下面的代码激活特定键盘的大写锁定。问题是,当我运行代码时,三个键盘的大写锁定被打开。请帮忙 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

我的电脑上有三个usb键盘。我想用下面的代码激活特定键盘的大写锁定。问题是,当我运行代码时,三个键盘的大写锁定被打开。请帮忙

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;
    }
}

你不能。Caps lock、num lock和scroll lock在许多BIOS和操作系统上全局设置

在Linux或Windows上进行测试,点击硬件键切换caps lock、num lock和scroll lock,在我的第二个键盘上也会切换,因此可能无法以这种方式在软件中切换


请注意,您不能禁用键盘或端口,请执行此操作,然后重新启用它,因为iit将涉及大量特定于操作系统的黑客,需要在Linux上使用JNI或devfs。当端口重新启用时,重新连接的键盘仍将处于锁定状态,即使其指示灯另有指示。

对我来说太糟糕了。我不能禁用其他两个键盘的端口/集线器(通过软件),然后运行代码吗?禁用其他端口不会阻止这两个键盘的通信吗?@TedMad这取决于操作系统。最有可能的是,没有很多低级黑客。此外,一旦键盘被重新连接,即使他们的灯不接受,他们也会接受大写锁定状态。