2013-07-14 2 views
0

내 컴퓨터에 세 개의 USB 키보드가 연결되어 있습니다. 아래 코드를 사용하여 특정 키보드의 대문자 잠금을 활성화하고 싶습니다. 문제는 코드를 실행할 때 세 개의 키보드의 caps lock이 켜져 있다는 것입니다. 도와주세요!키보드가 여러 개 연결되어있을 때 특정 USB 키보드의 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; 
    } 
} 

답변

0

수 없습니다. Caps lock, num lock 및 scroll lock은 많은 BIOS 및 운영 체제에서 전역으로 설정됩니다.

caps lock, num lock 및 scroll lock을 전환하기위한 하드웨어 키를 치고 두 번째 키보드에서도 하드웨어 키를 눌렀으므로이 방법으로 소프트웨어를 토글하지 못할 수 있습니다.

키보드 나 포트를 비활성화 할 수 없다는 것을 기억하십시오. Linux에서 JNI 또는 devfs를 필요로하는 많은 OS 관련 해킹이 포함될 수 있으므로이 작업을 다시 활성화하십시오. 포트가 다시 활성화되면 다시 연결 한 키보드의 표시등이 다른 경우에도 여전히 잠금 상태가됩니다.

+0

나를 위해 너무 나쁘다. 다른 두 키보드의 포트/허브 (소프트웨어를 통해)를 비활성화 한 다음 코드를 실행할 수 있습니까? 그 두 키보드의 다른 포트 차단 통신을 비활성화하지 않겠습니까? –

+0

@TedMad OS에 따라 다릅니다. 대부분 저수준 해킹이 많지 않습니다. 게다가 일단 키보드가 다시 연결되면 불이 들어오지 않아도 키보드 잠금 상태가됩니다. – hexafraction

관련 문제