アプリが最小化されている場合でも、(構成可能な) グローバル キーボード イベントをリッスンできる機能を AIR アプリに追加しようとしています。例: CTRL-ALT-SHIFT-F12 でスクリーンショットを取得します。
キーボード フックを登録する方法が見つかりません。キーボード イベントをリッスンしても、アプリにフォーカスがある場合にのみキャプチャされます。提案?
アプリが最小化されている場合でも、(構成可能な) グローバル キーボード イベントをリッスンできる機能を AIR アプリに追加しようとしています。例: CTRL-ALT-SHIFT-F12 でスクリーンショットを取得します。
キーボード フックを登録する方法が見つかりません。キーボード イベントをリッスンしても、アプリにフォーカスがある場合にのみキャプチャされます。提案?
ステージの 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 アプリに送り返す外部アプリを非常に簡単に作成できます。私は今、この道を進んでいるかもしれません...
Air アプリケーションを Flash CS5 でテストしていますが、独自のショートカットをテストできるようにキーボード ショートカットを無効にする必要があります。ctrl-F は機能しますが、ctrl-C は機能しません。
テストしている標準の AS3 ファイルの場合、キーボード ショートカットが機能することに気付きました。
私が使用する 1 つの方法は、AIR アプリでクリップボードを監視することです。これは、コピーされたデータに基づいて反応することしかできませんが、少なくとも、アプリにフォーカスがないときに入力をリッスンする方法の一種です。