2010-07-23 2 views
11

프로그래밍 방식으로 시스템을 잠에서 깨우고 싶습니다. 이것을 수행 할 방법이 있습니까? http://developer.apple.com/mac/library/qa/qa2004/qa1340.html뚜껑이 닫힌 경우 프로그래밍 방식으로 잠에서 깨우는 방법?

통지를 얻기에 관하여이 유일한 이야기,하지만 확실히 잠에서 시스템을 깨울 수있는 방법이있다 :

은 내가 링크를 읽고?

나는 ... 정보 일부 스레드를 감사

업데이트 :

내가 사용한

코드 IOPMSchedulePowerEvent으로 시도 제안에 따라 경찰 :

NSCalendarDate *timeIntervalSinceNow = [NSCalendarDate dateWithTimeIntervalSinceNow:40]; 
IOReturn result = IOPMSchedulePowerEvent ((CFDateRef)timeIntervalSinceNow, NULL, CFSTR(kIOPMAutoWake)); 

결과 :

뚜껑을 닫은 경우 MacBook에서 오류가 발생합니다.

잘못된 것이 있습니까? 아니면 어떤 해결책입니까?

+0

또한 https://github.com/iccir/Fermata를 참조하십시오. 그러나 다른 사람들과 마찬가지로, 클램 쉘에 잠을 자면 "잠"수 있습니다. 어쨌든 잠자기 모드에서 "일어나"수 있습니다. – rogerdpack

답변

6

전원 관리자를 통해 IOPMSchedulePowerEvent로 웨이크 업 이벤트를 스케줄 할 수 있습니다. 즉각적인 일어나기를 예약 할 수 있습니다. pmset은 전원 관리자를위한 명령 줄 래퍼입니다. 어떤 경우에는 IOCancelPowerChange로 수면을 예방할 수도 있습니다.

마우스 나 키 이벤트를 생성하여 잠자기 또는 깨우기를 방지 할 수 있습니다. 이벤트를 생성하는 한 가지 방법은 CGPostKeyboardEvent를 사용하는 것입니다.

편집 :

정상 수면 대합 조개 껍질이 잠을 폐쇄 다릅니다. 후자에 영향을 주려면 Insomnia과 같은 커널 확장을 작성해야합니다.

+2

어떻게 깨울 수 있었습니까? 이벤트를 생성하여? 컴퓨터가 잠 들어 있으면 코드가 실행되고 있지 않습니다. – JWWalker

+0

감사합니다. 한번 시도해 봅시다. 뚜껑을 닫을 때도 효과가있을 것입니다. –

+0

IOPMSchedulePowerEvent를 사용하여 잠에서 깨우려고했지만 뚜껑이 닫힌 경우 MacBook에서 실패합니다. –

관련 문제