代码之家  ›  专栏  ›  技术社区  ›  mjc

睡眠命令显示OSX

  •  5
  • mjc  · 技术社区  · 17 年前

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

    在睡眠模式下,我的意思是完全停止监视器的输出。我知道在电源设置中可以配置这个,但这是基于时间的。

    3 回复  |  直到 11 年前
        1
  •  17
  •   Tabitha deanWombourne    14 年前

    这可以通过一个半未记录的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

        2
  •  8
  •   Coxy    17 年前

    以编程方式,还是作为用户?

    对于后者,控制+移位+弹出。

        3
  •  6
  •   user2188875    11 年前

    在OS X 10.9.5中测试,您可以使用以下命令使显示器休眠:

    $ pmset displaysleepnow
    

    告诫 :目前,在OS X 10.9.5中,在休眠显示器时有一个bug(实际上是小麻烦),我在LaunchBar中使用睡眠显示操作时发现了这个bug。通过调用此命令(操作或终端),最后按下的键始终是 返回 ,所以当您唤醒显示器时,这个键似乎被卡住了。你可能永远不会注意到它,但是如果使用某种类型的双修改键点击来调用LaunchBar或其他应用程序(在我的例子中, 双CMD ,直到按 返回 再次“释放”它,在唤醒显示器后。