0

我的电脑上连接了三个 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;
    }
}
4

1 回答 1

0

你不能。大写锁定、数字锁定和滚动锁定在许多 BIOS 和操作系统上全局设置。

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

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

于 2013-07-14T16:39:46.757 回答