バックグラウンドでkeydownイベントを聞く方法を理解するために、過去から過去を探しています。たとえば、プログラム "Ventrilo"または "Teamspeak"を使用する場合、ビデオゲームのプレイ中にビデオゲームチームと話すことができます。したがって、これらの2つのプログラムは、バックグラウンドにあるときにキーを待ち受けます。私の質問はどのようにこれが行われますか?いくつかの例、チュートリアルは素晴らしいでしょう!私もまだまだこれで新しくなっていますので、説明してください。Xcode Macアプリケーション:Ventriloのようなバックグラウンドでkeydownイベントをリッスンする
0
A
答えて
2
私がココアで知っている唯一の方法は、グローバルイベントモニターを使用することです。以下のメソッドを呼び出すと、アプリケーションはcontrol-alt- /を聞き取り、警告を出します。このアプローチで考えられる問題は、キーを押すたびにブロックが実行されます(ただしアラートは表示されません)。プロセッサを大量に使用している場合、少し遅くなる可能性があります。私はこの問題がないCarbonでそれを行う方法があると思うが、それについて投稿するCarbonについて十分に知りません。
+(void)listenForKey {
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event)
{
NSUInteger key = 44; // 44 is forward slash
NSUInteger modifier = NSControlKeyMask | NSAlternateKeyMask;
if ([event keyCode] == key && [NSEvent modifierFlags] == modifier)
NSRunCriticalAlertPanel(nil,@"Control-alt/was detected",nil,nil,nil);
}];
}
関連する問題
- 1. jQueryのKeyDownイベントバインディング - ボディライブおよびドキュメントのKeyDown、クロム、サファリ、オペラでMacのKeyDownイベント
- 2. なぜ 'keydown'イベントが 'keypress'イベントのように機能するのですか?
- 3. NSTextFieldのkeyDownイベントを取得する
- 4. keydownイベントのシミュレート
- 5. iframeのkeydownイベント
- 6. ラベルのKeydownイベント
- 7. wxPythonでのKeyDownイベントのオーバーライド
- 8. ASPxTextBox KeyDownイベント
- 9. JSトリガKeyDownイベント
- 10. KeyDownイベントとNSTableViewCocoa
- 11. Silverlight Smooth KeyDownイベント
- 12. cakePHPのjQuery keydownイベント
- 13. jqueryのKeyDownイベント/アップ
- 14. Javascriptで "control" keydown pressイベントをキャプチャする
- 15. Xcode 7 Mac App StoreでOS Xアプリケーションをクラッシュさせようとする
- 16. XCodeのようにMacアプリケーションに左/下/右ペインを追加するには?
- 17. background.jsテキストボックスのkeydownイベントを取得する
- 18. IEがActiveXイベントをリッスンしないのはなぜですか?
- 19. のKeyDownイベントが正しく
- 20. はKeyDownイベント:との問題「@」
- 21. vb.net全体フォームのKeydownイベント
- 22. jQuery keydownイベントを無効にする
- 23. DataGridView KeyDownイベントが機能しない
- 24. - (void)keyDown:(NSEvent *)イベントが機能しない
- 25. winforms keydownイベントが動作しない
- 26. asp.netのサーバー側でTextBox keydownイベント
- 27. jQueryと入力keydownイベントでの問題
- 28. 基本WinForm KeyDownイベント処理
- 29. xcode IOSボタンは、ホームボタンのようなアプリケーションを終了するボタン
- 30. コンテンツ編集可能なHTML要素のイベントをリッスンする
これは美しく機能します。冒頭でcontrol-altを実行しないと、1つの質問だけが可能ですか?キーナンバーはどこで手に入りますか? –
nvm私がしなければならなかったのは、NSevent modifierFlags ==修飾子を取り除くことでした!しかし、キーナンバーはどこで手に入れましたか? –
この行をk = 44行のすぐ上に追加して、別のプログラムにいくつかのキーを入力すると、キーコードが記録されます:NSLog(@ "%d"、event.keyCode); – rdelmar