2008年1月30日水曜日

OSXのグローバルホットキーを使うには


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 件のコメント: