OSXにはグローバルホットキーという機能があります。
グローバルホットキーに登録しておくと、
フォアグラウンドにでなくてもキー入力を受け取ることができます。
フレームワークの登録
Carbon.frameworkをリンクします。コールバック関数を用意する
グローバルホットキーが押されたときに呼ばれるコールバック関数を定義します。OSStatus MyHotKeyHandler( EventHandlerCallRef nextHandler,
EventRef theEvent,
void *userData )
{
// ホットキーが押されたときの処理
return noErr;
}
ホットキーを登録する
アプリケーションを初期化するときに以下を実行します。cmd+opt+spaceを登録してみます。EventHotKeyRef gMyHotKeyRef;
EventHotKeyID gMyHotKeyID;
EventTypeSpec eventType;
eventType.eventClass = kEventClassKeyboard;
eventType.eventKind = kEventHotKeyPressed;
InstallApplicationEventHandler( &MyHotKeyHandler,
1,
&eventType,
NULL,
NULL );
gMyHotKeyID.signature = 'htk1';
gMyHotKeyID.id=1;
RegisterEventHotKey( 49, /* space key */
cmdKey + optionKey,
gMyHotKeyID,
GetApplicationEventTarget(),
0,
&gMyHotKeyRef );
0 件のコメント:
コメントを投稿