【发布时间】:2010-09-27 02:14:58
【问题描述】:
我正在尝试向我的 AIR 应用程序添加一项功能,该功能即使在应用程序最小化时也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12 截屏。
我找不到任何注册键盘钩子的方法,并且监听键盘事件只会在应用程序获得焦点时捕获它们。有什么建议吗?
【问题讨论】:
标签: keyboard-shortcuts air flex3 keyboard-hook
我正在尝试向我的 AIR 应用程序添加一项功能,该功能即使在应用程序最小化时也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12 截屏。
我找不到任何注册键盘钩子的方法,并且监听键盘事件只会在应用程序获得焦点时捕获它们。有什么建议吗?
【问题讨论】:
标签: keyboard-shortcuts air flex3 keyboard-hook
我不认为 Adobe Air 程序可以处理按键事件,除非应用程序处于焦点位置。
http://forums.adobe.com/thread/420446
即使this 有关按键的全局处理程序的问题也表明应用程序必须处于焦点位置。
【讨论】:
尝试连接到舞台的键盘事件:
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyHandler);
function KeyHandler(e:KeyboardEvent){
trace ("Key Code: " + e.keyCode);
trace ("Control? " + e.ctrlKey);
trace ("Shift? " + e.shiftKey);
trace ("Alt? " + e.altKey);
}
【讨论】:
使用 NativeProcess,您可以非常轻松地编写一个外部应用程序来监听全局键盘事件并将它们发送回您的 AIR 应用程序。我现在可能正在走这条路……
【讨论】:
我正在 Flash CS5 中测试我的 Air 应用程序,我需要禁用键盘快捷键,以便我可以测试我自己的快捷键。我可以让 ctrl-F 工作,但 ctrl-C 不行。
我注意到,如果我正在测试的是标准 AS3 文件,我的键盘快捷键将起作用。
【讨论】:
我使用的一种方法是监视 AIR 应用程序中的剪贴板,它只允许您根据复制的数据做出反应,但它至少是一种在应用程序没有焦点时侦听输入的方法。
【讨论】: