我正在尝试向我的AIR应用添加一项功能,即使应用程序最小化,也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12获取屏幕截图。
我找不到任何方法来注册键盘钩子,并且只有当应用程序具有焦点时,侦听键盘事件才会捕获它们。建议?
答案 0 :(得分:2)
我不认为Adobe Air程序可以处理按键事件,除非应用程序是焦点。
http://forums.adobe.com/thread/420446
关于按键的全局处理程序的this问题,即表明应用程序必须处于焦点。
答案 1 :(得分:1)
尝试连接到舞台的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);
}
答案 2 :(得分:1)
使用NativeProcess,您可以非常轻松地编写外部应用程序来侦听全局键盘事件并将其发送回AIR应用程序。我现在可能会走这条路......
答案 3 :(得分:0)
我在Flash CS5中测试我的Air应用程序,我需要禁用键盘快捷键,以便我可以测试自己的快捷方式。我可以让ctrl-F工作,但ctrl-C不会。
我注意到,如果我的键盘快捷键是我正在测试的标准AS3文件,它将会起作用。
答案 4 :(得分:0)
我使用的一种方法是监控AIR应用程序中的剪贴板,它只允许您根据复制的数据做出反应,但它至少是一种在应用程序没有焦点时监听输入的方式。