在OSX

2014-10-06 67 views
4

我已經成功編程方式喚醒顯示器以獲得顯示立即與在OSX

pmset displaysleepnow 
在終端

但是,對於喚醒顯示睡覺,我只發現

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

從而未能如果我從現在開始嘗試安排至少10秒之前的任何工作。

有沒有什麼辦法可編程喚醒可可中的顯示?有人建議IOPMAssertionDeclareUserActivity,但我找不到任何這方面的例子,所以我掙扎着。

我正在使用Swift,但Objective C代碼也是受歡迎的。

謝謝!

+0

也許嘗試利用特徵中的 「網絡活動喚醒」。我認爲它通常被稱爲「Wake on LAN」。 – 2014-10-06 23:02:53

+1

您試圖以編程方式喚醒顯示屏的確切內容?當用戶不在場時,我沒有看到喚醒顯示器的一點。 – 2014-10-06 23:04:09

+0

試試[這](http://stackoverflow.com/questions/3315685/how-to-wake-from-sleep-programmatically)?第一個答案似乎相關。 – Travis 2014-10-06 23:06:19

回答

6

得到它的工作:

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

您應該接受自己的答案,以便人們可以輕鬆找到解決方案。 – 2014-10-07 01:05:08

+0

「 你可以接受你自己的答案在2天內」 – 2014-10-07 01:29:41

+0

這段代碼工作正常,直到OSX 10.10,但似乎沒有在OSX El Capitan上工作。我們有替代方案嗎? – 2015-10-24 16:19:27

1

這裏是斯威夫特3.X答案:

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