OS X上是否有命令/ API将监视器置于睡眠模式?
通过睡眠模式,我的意思是完全杀死显示器的输出。我知道在电源设置中可以配置这个,但这是基于时间的。
答案 0 :(得分:17)
这可以用半无证的api完成。
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>
/* Returns 0 on success and 1 on failure. */
int display_sleep(void)
{
io_registry_entry_t reg = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler");
if (reg) {
IORegistryEntrySetCFProperty(reg, CFSTR("IORequestIdle"), kCFBooleanTrue);
IOObjectRelease(reg);
} else {
return 1;
}
return 0;
}
GCC标志:-framework CoreFoundation -framework IOKIT
答案 1 :(得分:8)
以编程方式,还是以用户身份?
对于后者,Control + Shift + Eject。
答案 2 :(得分:6)
在OS X 10.9.5中测试,您可以使用以下命令将显示器置于睡眠状态:
$ pmset displaysleepnow
警告:目前,在OS X 10.9.5中睡眠显示器时存在一个小问题(真的很小),我在LaunchBar中使用睡眠显示操作时发现了这个错误。通过调用此命令(动作或终端),最后一个按下的键总是返回,所以这个键似乎得到了&#34;卡住&#34;当你唤醒显示器。您可能永远不会注意到它但是如果使用某种双修饰键来调用LaunchBar或其他应用程序(在我的情况下, Double Cmd ),这个键组合赢了工作直到你再次按返回到&#34;发布&#34;它,醒来后显示。