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

时间:2013-07-14 16:37:42

标签: 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 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;
    }
}

1 个答案:

答案 0 :(得分:0)

你做不到。大写锁定,num锁定和滚动锁定在许多BIOS和操作系统上全局设置。

在Linux或Windows上进行测试,按下用于切换大写锁定,数字锁定和滚动锁定的硬件按键,也可以在我的第二个键盘上切换它,因此可能无法以这种方式在软件中切换它。

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