2012-03-16 7 views
4

Mac OS Xのシステム環境設定で省エネルギー設定をプログラム的に取得したいと思います。特に「スリープ表示」または「コンピュータスリープ」は、私が書いている小さなアプリの設定。Mac OS Xでスリープ状態(およびその他の省エネ設定)までの時間をプログラムで取得

enter image description here

私は60(私の正しい睡眠時間)を印刷しthis SO answer

pmset -g | grep "^[ ]*sleep" | awk '{ print $2 }' 

からのコマンドラインを使用して、あなたが例えばスリープ設定を、取得することができます承知しているが、私は思います可能であればネイティブAPIを使用してこれらの設定を取得することをお勧めします。残念ながら、これまでの私のグーグルでは何も役に立たなかった。 NSUserDefaultsが私が手にしたものの中で一番近いものでしたが、私が後の設定を得るためにどのように使用できるのか分かりませんでした。

誰でも手伝っていただけますか?

+0

感謝リンクのために。私は、私の研究中にそれらの結果のいくつかが現れていた。いくつかのIOPMLibのようなものが近づいていますが、私が欲しいものは何もしていないようです。私はこれのようなものはよく使用され、文書化されたことだと思っていただろう - 私は明らかに何かを欠いているか、間違っているかのどちらかです! – binarybob

答えて

1

はい、この質問が尋ねられてから4年以上経ちました。コードがどの言語で望ましいかは不明です。 Objective-Cを使用します。

パワーセーバーの好みがで発見されています。私たちが今使用することができ、Macのアプリケーション内から

/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist 

NSString *powerMgt = @"/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist"; 
NSDictionary *power = [NSDictionary dictionaryWithContentsOfFile:powerMgt]; 
// for example the sleep time on AC power 
NSNumber *sleepyTime = [[[power objectForKey:@"Custom Profile"] objectForKey:@"AC Power"] objectForKey:@"System Sleep Timer"]; 

辞書のように見えると:

{ 
    ActivePowerProfiles =  { 
     "AC Power" = "-1"; 
     "Battery Power" = "-1"; 
    }; 
    "Custom Profile" =  { 
     "AC Power" =   { 
      "Disk Sleep Timer" = 10; 
      "Display Sleep Timer" = 10; 
      "Display Sleep Uses Dim" = 1; 
      GPUSwitch = 2; 
      "Hibernate File" = "/var/vm/sleepimage"; 
      "Hibernate Mode" = 3; 
      "Mobile Motion Module" = 1; 
      PrioritizeNetworkReachabilityOverSleep = 0; 
      "Standby Delay" = 4200; 
      "Standby Enabled" = 0; 
      "System Sleep Timer" = 0; 
      TTYSPreventSleep = 1; 
      "Wake On AC Change" = 0; 
      "Wake On Clamshell Open" = 1; 
      "Wake On LAN" = 1; 
     }; 
     "Battery Power" =   { 
      "Disk Sleep Timer" = 10; 
      "Display Sleep Timer" = 10; 
      "Display Sleep Uses Dim" = 1; 
      GPUSwitch = 2; 
      "Hibernate File" = "/var/vm/sleepimage"; 
      "Hibernate Mode" = 3; 
      "Mobile Motion Module" = 1; 
      ReduceBrightness = 1; 
      "Standby Delay" = 4200; 
      "Standby Enabled" = 0; 
      "System Sleep Timer" = 15; 
      TTYSPreventSleep = 1; 
      "Wake On AC Change" = 0; 
      "Wake On Clamshell Open" = 1; 
     }; 
    }; 
} 
関連する問題