Спящий дисплей с использованием IOKit на Lion - PullRequest
2 голосов
/ 14 октября 2011

У меня есть следующий код, который должен спать на дисплее Mac.Я попробовал это на Льве, но это, похоже, ничего не делает.Я проверил код, создав 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;
}
...