我正在尝试向我的 AIR 应用程序添加一项功能,即使应用程序已最小化,它也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12 截取屏幕截图。
我找不到任何注册键盘钩子的方法,并且监听键盘事件仅在应用程序具有焦点时捕获它们。建议?
我正在尝试向我的 AIR 应用程序添加一项功能,即使应用程序已最小化,它也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12 截取屏幕截图。
我找不到任何注册键盘钩子的方法,并且监听键盘事件仅在应用程序具有焦点时捕获它们。建议?
我不认为 Adobe Air 程序可以处理按键事件,除非应用程序是焦点。
http://forums.adobe.com/thread/420446
即使这个关于按键的全局处理程序的问题也表明应用程序必须处于焦点。
尝试连接到舞台的 KeyboardEvent:
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 应用程序中的剪贴板,它只允许您根据复制的数据做出反应,但它至少是一种在应用程序没有焦点时侦听输入的方法。