2009-07-03 31 views
0

我有一个戴尔Inspiron E1505,正如你可以在this image看到它的正面有用于静音,播放/暂停,停止,音量控制等一些按钮,静音和音量按钮实际影响对于电脑本身的音量设置,但其他人也可以用来控制其他一些应用程序,如Windows媒体播放器,甚至Pandora接收来自静音/播放/停止等的输入。关于戴尔Inspiron笔记本电脑前

我如何编写响应这些按键输入的应用程序?我还没有具体的应用程序,所以任何语言的解决方案都会很棒。

我试图建立在Java的Swing的一个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对象越来越设置,但对象提供对这一领域没有公开访问。 – 2009-07-03 15:05:16

回答

0

你想在WM_APPCOMMAND窗口消息看,如果你使用的是Windows。这就是WMP和朋友们如何做到的。