8

我想写一个Songbird扩展绑定所有 Apple Mac OS X 平台上可用的多媒体键。不幸的是,这不是一个简单的谷歌搜索,我找不到任何文档。

谁能指出我访问这些密钥的资源或告诉我该怎么做?

我有丰富的编程经验,但这将是我第一次在 MacOSX 和XUL(Firefox 等)中编码,所以欢迎任何关于两者的提示。

请注意,这些不是常规的关键事件。我认为它必须是我需要挂钩或订阅的不同类型的系统事件。

4

3 回答 3

2

这篇博文有一个解决方案:

http://www.rogueamoeba.com/utm/posts/Article/mediaKeys-2007-09-29-17-00.html

您基本上需要 subclassNSApplication和 override sendEvent
寻找特殊的扫描码。我不知道鸣禽是什么,但如果它
不是一个真正的应用程序,那么我怀疑你能做到这一点。

或者也许你可以,一个简单的类别就足够了:

@implementation NSApplication(WantMediaKeysCategoryKBye)
- (void)sendEvent: (NSEvent*)event
{
    // intercept media keys here
}
@end
于 2009-01-08T07:42:37.573 回答
1

您确定您的多媒体密钥在您的安装中正常工作吗?每个键都会生成一个扫描码,该扫描码由内核翻译成一个键码。如果 xev 没有向您显示任何键码,我猜这些扫描码没有被映射,因此内核不知道它们。

http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys对查找密钥代码有很好的解释,并提供有关如何找到原始扫描代码并将其转换为密钥代码的帮助。

于 2008-09-25T19:01:19.850 回答
0

xev如果您想了解多媒体键正在发送哪些代码,可能会对您有所帮助。

于 2008-09-22T15:02:29.637 回答