Mac でディスプレイをスリープ状態にする次のコードがあります。Lion で試してみましたが、何もしないようです。ウィンドウ内のボタンと IBAction メソッドを備えたベアボーン ウィンドウ Mac アプリを作成して、コードをテストしました。ボタンが押されると、以下の関数が呼び出されますが、何も起こりません。
なぜそれが機能しないのかについての提案はありますか?
#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;
}