IOCancelPowerChange
은 계속 작동하지만 유휴 트리거 모드에서만 작동합니다. 파인더의 수면 메뉴 항목, 프로그래밍 방식으로 요청한 항목 또는 전원 단추를 눌러 트리거되는 절전 모드에서는 작동하지 않습니다.
Apple의 Q&A1340은 "컴퓨터가 잠자기 또는 잠자기에서 깨어날 때 내 응용 프로그램에 어떻게 알릴 수 있습니까? 잠을 어떻게 방지합니까?"라는 질문에 대답합니다.
목록 Q&A1340 2 :
#import <IOKit/pwr_mgt/IOPMLib.h>
// kIOPMAssertionTypeNoDisplaySleep prevents display sleep,
// kIOPMAssertionTypeNoIdleSleep prevents idle sleep
//reasonForActivity is a descriptive string used by the system whenever it needs
// to tell the user why the system is not sleeping. For example,
// "Mail Compacting Mailboxes" would be a useful string.
// NOTE: IOPMAssertionCreateWithName limits the string to 128 characters.
CFStringRef* reasonForActivity= CFSTR("Describe Activity Type");
IOPMAssertionID assertionID;
IOReturn success = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep,
kIOPMAssertionLevelOn, reasonForActivity, &assertionID);
if (success == kIOReturnSuccess)
{
//Add the work you need to do without
// the system sleeping here.
success = IOPMAssertionRelease(assertionID);
//The system will be able to sleep again.
}
참고 만 유휴 시간의 수면을 중지 할 수 있습니다, 사용자가 트리거 잠을 잘.
Mac OS X 10.6 이상을 지원하는 응용 프로그램의 경우 새로운 IOPMAssertion 제품군을 사용하십시오. 이 함수는 다른 응용 프로그램과 유틸리티가 응용 프로그램의 절전 모드를 보지 못하도록합니다. 이는 타사 전원 관리 소프트웨어와 원활하게 작업하는 데 중요합니다.
여기에 [새로운 Apple Q & A] (http://developer.apple.com/library/mac/#qa/qa1340/_index.html)가 있습니다. –
@ 마이클 : 나는 그와 똑같이하고 싶습니다. 내가 그 질문을 수정할 수있는 방법이 있습니까? – orome
현상금을 게시하면 해당 질문의 가시성이 높아져 더 많은 답변을 요구할 수 있습니다. 그 질문에 대한'현상금 시작'링크를 클릭하고 결과 대화 상자에 최신 대답을 원한 이유를 제공하십시오. 자세한 내용을 제공하려면 설명을 추가하십시오. –