睡眠命令显示OSX

时间:2009-08-06 14:54:09

标签: macos

OS X上是否有命令/ API将监视器置于睡眠模式?

通过睡眠模式,我的意思是完全杀死显示器的输出。我知道在电源设置中可以配置这个,但这是基于时间的。

3 个答案:

答案 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

IOKit Documentation

答案 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;它,醒来后显示。