2011-04-05 94 views
6

我正在用C编写一个程序,并希望它有一个选项,即使盖子关闭,也能保持mac笔记本电脑清醒,因此进程可以继续。似乎有关于这个主题的信息很少,所以我真的不知道从哪里开始。如果有人知道如何做到这一点,或者我可以找到更多的信息,我真的很感激(即,我需要与BIOS一起工作还是内置函数?)。另外,如果用另一种语言做起来更容易,因为我不会固执地使用C语言。防止Mac笔记本电脑在关闭时睡眠?

回答

3

你需要为此编写一个内核扩展。操作系统默认不支持它,因为笔记本电脑的设计不适合在盖子关闭并启用内部显示的情况下自行冷却。 SleepLess是一个10美元的工具,可以做你想做的。如果你扭曲了显示屏或其他东西,那是你自己的错。 :-)。

如果你想自己写点东西,LidSleep.kext看起来是一个很好的开始(它恰好相反,即睡在盖子上)并附带源代码。

(这是possible and supported唤醒通过使用外部输入设备关闭了屏幕部分Mac笔记本电脑。)

+0

顺便说一句,应该有可能只防止空闲睡眠,而不会阻止显示器的睡眠。 – Hasturkun 2011-04-05 23:05:09

+0

谢谢你们!来自LidSleep的源代码非常有用。 – ORL 2011-04-05 23:11:12

2

您可以使用I/O Kit框架执行此操作,请参阅QA1340列出了使用IOPMAssertionCreateWithName的示例代码2暂时防止睡眠。

+0

正如问答中所提到的那样,您只能通过IOPM断言来防止空闲睡眠,而不是强迫睡眠(如盖子关闭)。 – 2011-04-05 18:50:29

+0

@尼古拉斯:啊,我好像错过了那个笔记。 – Hasturkun 2011-04-05 23:00:49

-2

如果你的笔记本电脑是一个相当最近的模型,你不需要添加任何东西。如果你正在运行狮子,它只是工作。如果您运行的是较旧的操作系统,则必须通过向外部键盘或鼠标发送按键或鼠标单击来唤醒笔记本电脑。见http://support.apple.com/kb/ht3131

+1

不可以,这不适用于外接键盘或鼠标。这样,笔记本电脑关闭时,非交互式程序可以继续运行。 – 2012-07-24 17:18:29