2009-07-03 5 views
0

나는 Dell Inspiron E1505를 가지고 있으며 this image에서 볼 수 있듯이 앞면에 음소거, 재생/일시 정지, 정지, 볼륨 조절 등을위한 버튼이 있습니다. 음소거 및 볼륨 버튼은 실제로 볼륨 설정은 컴퓨터 자체에 적용되지만 다른 것들도 Windows Media Player 및 심지어 Pandora과 같은 일부 다른 응용 프로그램을 제어하는 ​​데 사용될 수 있습니다.음소거/재생/정지/등으로부터 입력을 수신합니다. Dell Inspiron 노트북 앞면

이 버튼의 입력에 응답하는 응용 프로그램을 작성하려면 어떻게해야합니까? 특정 응용 프로그램을 염두에두고 있지 않으므로 어떤 언어의 솔루션이라도 훌륭합니다.

내가 자바 스윙의 모든 KeyListener를 설정하고, 트리거 얻을 사건을보고 시도 : 내가 누르는 버튼에 관계없이,

JFrame frame = new JFrame(); 
frame.addKeyListener(new KeyListener() { 

    @Override public void keyPressed(KeyEvent e) { 
    System.out.println("pressed: " + e); 
    } 

    @Override public void keyReleased(KeyEvent e) {} 

    @Override public void keyTyped(KeyEvent e) {}    
}); 
frame.setVisible(true); 

결과입니다 : 그래서

pressed: java.awt.event.KeyEvent[KEY_PRESSED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_STANDARD] on frame0 

AFAIK 다른 버튼을 구분할 방법이 없습니다. 다시 한번 말하지만, 어떤 언어로든 솔루션을 받아 들일 것입니다. 특정 어플리케이션을 아직 염두에 두지 않았기 때문입니다.

+0

흥미 롭습니다. 동일한 코드를 실행하면 KeyEvent 객체에 고유 한 "원시 코드"가 설정되어있는 것을 볼 수 있지만 객체는이 필드에 대한 공용 액세스를 제공하지 않습니다. –

답변

0

Windows를 사용하는 경우 WM_APPCOMMAND 창 메시지를보고 싶습니다. 그것이 WMP와 친구들이하는 방법입니다.

관련 문제