2009-08-06 7 views
5

OS Xにモニタをスリープモードにするコマンド/ APIはありますか?コマンドをスリープモードにするOSX

スリープモードでは、モニタへの出力を完全に消去するという意味です。私は電源設定でこれを設定できることを知っていますが、それは時間ベースです。

答えて

16

これは、半文書化されていない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

+0

コンパイル済みのバージョンはこちらからご覧ください:http://www.malcolmhall.com/products/sleepdisplay/ – rogerdpack

+2

マルチディスプレイシステムで1つのディスプレイをターゲットにできますか?これはすべてのディスプレイをスリープ状態にするようです。 – regulus6633

+0

regulus6633:そうは思わない。これは単にOSにモニターをスリープ状態にするよう要求しているだけです。あなたが眠っている人を置くと、あなたが他の人の上で何かをするとき、それは即座に目を覚ますでしょう。最善の方法は、prefs-> displayで2番目のモニターを無効にすることです。 – Tarrant

8

プログラム的に、またはユーザーとして?

後者の場合は、Ctrl + Shift + Ejectを押します。

+0

プログラミングソリューションをお探しの場合 – mikeycgto

6

OS X 10.9.5でテストは、次のコマンドと一緒に寝て、ディスプレイを置くことができます。

$ pmset displaysleepnow 

警告 :現在のところ、OS X 10.9.5ではディスプレイをスリープ状態にするバグがあります(小さな悩みです) LaunchBarでスリープ表示アクションを使用しています。このコマンド(アクションまたは端末)を呼び出すと、最後に押されたキーは常にになります。が返されます。このキーは、ディスプレイを起動すると「スタック」するようです。 LaunchBarや他のアプリ(私の場合はDouble Cmd)を呼び出すために何らかの二重修飾キータップを使用すると、を押すまでこのキーの組み合わせは機能しません。ディスプレイを目覚めさせた後、それを「解放する」。

関連する問題