0

私のコンピュータには 3 つの USB キーボードが接続されています。以下のコードを使用して、特定のキーボードの Caps Lock を有効にしたいと考えています。問題は、コードを実行すると、3 つのキーボードの Caps Lock がオンになることです。助けてください!

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

それはいけません。Caps Lock、Num Lock、および Scroll Lock は、多くの BIOS およびオペレーティング システムでグローバルに設定されています。

Linux または Windows でテストし、ハードウェア キーを押して Caps Lock、Num Lock、および Scroll Lock を切り替えると、2 番目のキーボードでも切り替えられるため、この方法でソフトウェアで切り替えることはおそらく不可能です。

キーボードまたはポートを無効にすることはできないことに注意してください。これを行ってから、LinuxでJNIまたはdevfsを必要とするOS固有のハックが大量に含まれるため、再度有効にします。ポートが再度有効になると、再接続されたキーボードは、ライトがそうでないことを示していても、ロック状態のままになります。

于 2013-07-14T16:39:46.757 に答える