【发布时间】:2014-11-08 03:58:33
【问题描述】:
这是我的代码:
CGEventSourceRef src =
CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef cmdd = CGEventCreateKeyboardEvent(src, 0x37, true);
CGEventRef cmdu = CGEventCreateKeyboardEvent(src, 0x37, false);
CGEventRef sftd = CGEventCreateKeyboardEvent(src, 0x38, true);
CGEventRef sftu = CGEventCreateKeyboardEvent(src, 0x38, false);
CGEventRef fourd = CGEventCreateKeyboardEvent(src, 0x15, true);
CGEventRef fouru = CGEventCreateKeyboardEvent(src, 0x15, false);
CGEventSetFlags(fourd, kCGEventFlagMaskCommand); //NO idea why this is here.
CGEventSetFlags(fouru, kCGEventFlagMaskCommand); //NO idea why this is here.
CGEventTapLocation loc = kCGHIDEventTap; // kCGSessionEventTap also works
CGEventPost(loc, cmdd); //Cmd down
CGEventPost(loc, sftd); //Shift down
CGEventPost(loc, fourd); //4 down
CGEventPost(loc, cmdu); //Cmd up
CGEventPost(loc, sftu); //Shift up
CGEventPost(loc, fouru); //4 up
CFRelease(cmdd);
CFRelease(cmdu);
CFRelease(sftd);
CFRelease(sftu);
CFRelease(fourd);
CFRelease(fouru);
CFRelease(src);
}
谁能告诉我为什么这不起作用?它使一个按钮按下执行命令 Cmd+Shft+4 并允许用户执行截图功能。
【问题讨论】:
标签: objective-c xcode cocoa keyboard simulation