在OSX Lion的最新版本中,您如何將機器從顯示器睡眠中喚醒?這是爲了響應網絡活動。如何在OSX 10.7.4中從睡眠中喚醒?
在10.7.3這是可能與以下電話:
IOPMAssertionID id = 0;
IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep,
kIOPMAssertionLevelOn, reason, &id)
然而,這並不在10.7.4工作。可以做些什麼呢?
在OSX Lion的最新版本中,您如何將機器從顯示器睡眠中喚醒?這是爲了響應網絡活動。如何在OSX 10.7.4中從睡眠中喚醒?
在10.7.3這是可能與以下電話:
IOPMAssertionID id = 0;
IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep,
kIOPMAssertionLevelOn, reason, &id)
然而,這並不在10.7.4工作。可以做些什麼呢?
我還沒有測試的性能影響也不與空閒計時器本身的互動,但:
io_registry_entry_t regEntry = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler");
if (regEntry != MACH_PORT_NULL) {
IORegistryEntrySetCFProperty(regEntry, CFSTR("IORequestIdle"), kCFBooleanFalse);
IOObjectRelease(regEntry);
}
作品10.7.4喚醒從空閒屏幕。
這似乎從docs的方式來「喚醒」顯示這些天:
IOPMAssertionID assertionID2;
IOPMAssertionDeclareUserActivity(CFSTR("Your reasoning"),
kIOPMUserActiveLocal, &assertionID2);
從原來問題的IOPMAssertionCreateWithName(...)
方式只有「防止顯示器進入睡眠狀態」,如果它是已經在(儘管它確實有效並且也可以用來防止它從去睡覺時間的duration)。
的方式爲「保持」在顯示屏上大致相同的方式工作IOPMAssertionCreateWithName
IOPMAssertionID m_disableDisplaySleepAssertion;
IOReturn success2 = IOPMAssertionCreateWithDescription(
kIOPMAssertionTypePreventUserIdleDisplaySleep, reasonForActivity, NULL, NULL, NULL, 0, NULL, &m_disableDisplaySleepAssertion);
if (success2 == kIOReturnSuccess) {
// screen will stay on, do you work
success = IOPMAssertionRelease(m_disableDisplaySleepAssertion);
}
如果你想「打開它,並保持它永遠」然後IOPMAssertionDeclareUserActivity
的文檔方法,接着是上述,或者以某種方式一次又一次地撥打IOPMAssertionDeclareUserActivity
。
你也可以調出該caffeinate
命令行實用程序,我想:)
還要注意的是[可可-dev的貢獻者(http://www.cocoabuilder.com/archive/cocoa/191807-sleep -display.html#206374)表示這將導致PPC機器上出現內核恐慌。 –