#objective-c #macos #sleep #iokit
#objective-c #macos #сон #iokit
Вопрос:
У меня есть следующий код, который, как предполагается, переводит дисплей в спящий режим на Mac. Я пробовал его на Lion, но, похоже, он ничего не делает. Я протестировал код, создав приложение Mac с простым окном с кнопкой в окне и методом IBAction. При нажатии кнопки вызывается функция, приведенная ниже, однако ничего не происходит.
Любые предложения относительно того, почему это не работает?
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
int display_sleep(void)
{
io_registry_entry_t reg = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler");
if (reg)
{
IORegistryEntrySetCFProperty(reg, CFSTR("IORequestIdle"), kCFBooleanTrue);
IOObjectRelease(reg);
}
else
{
return 1;
}
return 0;
}