Before mac osx 10.14 I wake up by CGEventPost to post a KeyboardEvent, in osx10.14 will now pop up Accessibility access reminder, this is not what we want, I tried the following method, is my method wrong or there are other ways?
we can use the root privilege.
1.
NSCalendarDate *timeIntervalSinceNow = [NSCalendarDate dateWithTimeIntervalSinceNow:40];
IOReturn returnCode = IOPMSchedulePowerEvent ((CFDateRef)timeIntervalSinceNow, NULL, CFSTR(kIOPMAutoWakeOrPowerOn));
2.
void sendWakeEvent() {
ProcessSerialNumber psn = { 0, kSystemProcess };
NSAppleEventDescriptor* target = [NSAppleEventDescriptor descriptorWithDescriptorType:typeProcessSerialNumber bytes:&psn length:sizeof(psn)];
NSAppleEventDescriptor* event = [NSAppleEventDescriptor appleEventWithEventClass:kCoreEventClass eventID:kAEWakeUpEvent targetDescriptor:target returnID:AEReturnID(kAutoGenerateReturnID) transactionID:AETransactionID(kAnyTransactionID)];
NSError * error = nil;
[event sendEventWithOptions:NSAppleEventSendNoReply timeout:kAEDefaultTimeout error:&error];
ZRLogString([error description]);
}