Programmatically wake display on OSX

半腔热情 提交于 2019-12-09 06:35:23

问题


I've managed to get the display to sleep immediately with

pmset displaysleepnow

in terminal, however for waking the display I've only found

pmset schedule wake "12/24/2009 00:00:00" 

which fails to work if I try to schedule anything earlier than at least 10secs from now.

Is there any way to programmatically wake the display in Cocoa? Someone has suggested IOPMAssertionDeclareUserActivity but I couldn't find any examples on this so I am struggling.

I am using Swift by the way, but Objective C code is also welcome.


回答1:


Got it working with:

  IOPMAssertionID assertionID; 
  IOPMAssertionDeclareUserActivity(CFSTR(""), kIOPMUserActiveLocal, &assertionID);



回答2:


Here is the answer in Swift 3.x:

var assertionID : IOPMAssertionID = 0
 _ = IOPMAssertionDeclareUserActivity("" as CFString, kIOPMUserActiveLocal, &assertionID)


来源:https://stackoverflow.com/questions/26226026/programmatically-wake-display-on-osx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!