一度キーを検出すると、一時停止キーを送信してiTunesで再生している曲を一時停止することができます。boolean
変数を使用してキーボードで入力したショートカットとあなたが持っている可能性が Modify NSEvent to send a different key than the one that was pressedこっちプログラム
または
を(あなたが必要な場合は場合)あなたは、いくつかのCコードを使用することができますが(Javaプログラムと一緒にCプログラムを起動)@Dave Delongsの答えを見てみましょう別のキーボードショートカットを使用し、ショートカットキーを送信するためにcプログラムを変更します。キーコード012が必要な場合は、Itunesショートカットキーが押されています。例えば
あなたの音楽番組がp to play songs
とr to listen to the next song
を使用し、iTunesが次のいずれかに行くために歌やright arrow key
を再生するためにspacebar
を使用している場合、あなたは何ができる@Dave Delongsがここに答える変更の変更は以下のとおりです。 -
#import <Cocoa/Cocoa.h>
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
//0x31 is the virtual keycode for "Spacebar"
//0x23 is the virtual keycode for "p"
if (CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode) == 0x31) {
CGEventSetIntegerValueField(event, kCGKeyboardEventKeycode, 0x23);
}
//0x7C is the virtual keycode for "Right arrow"
//0x0F is the virtual keycode for "R"
if (CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode) == 0x7C) {
CGEventSetIntegerValueField(event, kCGKeyboardEventKeycode, 0x0F);
}
return event;
}
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
CFRunLoopSourceRef runLoopSource;
CFMachPortRef eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, kCGEventMaskForAllEvents, myCGEventCallback, NULL);
if (!eventTap) {
NSLog(@"Couldn't create event tap!");
exit(1);
}
runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes);
CGEventTapEnable(eventTap, true);
CFRunLoopRun();
CFRelease(eventTap);
CFRelease(runLoopSource);
[pool release];
exit(0);
}
これは、Linux上でサポートされていない、しかし、あなたがWindowsとOS Xを参照の上、イベントを消費することができます。https://github.com/kwhat/jnativehook/wiki/ConsumingEvents –