1

バックグラウンドでキーダウンイベントを聞くことができるかどうか、そしてどのようにできるかを理解しようと、私は何日も過去を探してきました. たとえば、プログラム「Ventrilo」または「Teamspeak」を使用すると、ビデオ ゲームをプレイしながらビデオ ゲーム チームと話すことができます。したがって、これら 2 つのプログラムはバックグラウンドでキーをリッスンします。私の質問は、これはどのように行われるのですか? いくつかの例、チュートリアルは素晴らしいでしょう! 私もまだ初心者なので、わかりやすく教えてください。

4

1 に答える 1

4

ココアで私が知っている唯一の方法は、グローバル イベント モニターを使用することです。以下のメソッドを呼び出すと、アプリは control-alt-/ をリッスンしてからアラートを出します。このアプローチで考えられる問題は、キーを押すたびにブロックが実行される (ただしアラートは表示されない) ことです。非常にプロセッサを集中的に使用する場合は、少し遅くなる可能性があります。この問題を抱えていないカーボンでそれを行う方法があると思いますが、それについて投稿するほどカーボンについて知りません。

+(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);
    }]; 
}
于 2012-03-25T16:19:07.990 に答える