Как программно разбудить из сна, если крышка закрыта? - PullRequest
12 голосов
/ 23 июля 2010

Я хочу вывести систему из спящего режима программно, есть ли способ сделать это?

Я прочитал следующую ссылку: http://developer.apple.com/mac/library/qa/qa2004/qa1340.html

это только разговор о получении уведомления, но неуверен, есть ли способ вывести систему из спящего режима?

Я ценю некоторую нить в информации ...

Обновление:

Согласно предложению, которое я пробовал с IOPMSchedulePowerEvent

Код, который я использовал:

NSCalendarDate  *timeIntervalSinceNow = [NSCalendarDate dateWithTimeIntervalSinceNow:40];
IOReturn result = IOPMSchedulePowerEvent ((CFDateRef)timeIntervalSinceNow, NULL, CFSTR(kIOPMAutoWake)); 

Результат:

В MacBook происходит сбой, если крышка закрыта

Я делаю что-то не так или есть какое-то решение?

1 Ответ

6 голосов
/ 23 июля 2010

Вы можете запланировать события пробуждения с помощью IOPMSchedulePowerEvent через менеджер питания. Вы можете запланировать немедленное пробуждение. pmset - это оболочка командной строки для менеджера питания. В некоторых случаях вы также можете предотвратить сон с помощью IOCancelPowerChange.

Вы можете предотвратить сон или пробуждение, генерируя событие мыши или клавиши. Один из способов генерировать события - это CGPostKeyboardEvent.

Edit:

Нормальный сон отличается от закрытого сна. Чтобы повлиять на последнее, вы должны написать расширение ядра, например Insomnia .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...