2012-03-15 7 views
2

Objective-CでMacのディスプレイの明るさを調整する方法はありますか?私は敏感な目を持っていて、時にはディスプレイが暗くなるように見えます。オタクと闇についてJeff's blog postと組み合わせると、かなり迷惑になることがあります。Macのディスプレイの明るさを調整するObjective-C?

ディスプレイが数値に設定できると、通常の画面の明るさよりも低く設定されてしまうことがあります。私はグーグルで行きましたが、出てきたことのすべてはiPhoneに関するものでした。 Macのための方法はありますか?

+0

私の知らないことは、システム環境設定で簡単に行うことができるのはなぜですか? –

+0

http://stackoverflow.com/questions/3239749/programmatically-change-mac-display-brightness –

+0

http://stackoverflow.com/questions/818829/how-to-dim-os-x-desktop-using-cocoa -core-animation –

答えて

2

ちょうどグーグルでこれを見つけました:)

明るさを取得するコードは次のとおりです。

// almost completely from: http://mattdanger.net/2008/12/adjust-mac-os-x-display-brightness-from-the-terminal/ 
- (float) get_brightness { 
    CGDirectDisplayID display[kMaxDisplays]; 
    CGDisplayCount numDisplays; 
    CGDisplayErr err; 
    err = CGGetActiveDisplayList(kMaxDisplays, display, &numDisplays); 

    if (err != CGDisplayNoErr) 
     printf("cannot get list of displays (error %d)\n",err); 
    for (CGDisplayCount i = 0; i < numDisplays; ++i) { 


     CGDirectDisplayID dspy = display[i]; 
     CFDictionaryRef originalMode = CGDisplayCurrentMode(dspy); 
     if (originalMode == NULL) 
      continue; 
     io_service_t service = CGDisplayIOServicePort(dspy); 

     float brightness; 
     err= IODisplayGetFloatParameter(service, kNilOptions, kDisplayBrightness, 
             &brightness); 
     if (err != kIOReturnSuccess) { 
      fprintf(stderr, 
        "failed to get brightness of display 0x%x (error %d)", 
        (unsigned int)dspy, err); 
      continue; 
     } 
     return brightness; 
    }  
    return -1.0;//couldn't get brightness for any display 
} 

明るさを設定する方法。

// almost completely from: http://mattdanger.net/2008/12/adjust-mac-os-x-display-brightness-from-the-terminal/ 
- (void) set_brightness:(float) new_brightness { 
    CGDirectDisplayID display[kMaxDisplays]; 
    CGDisplayCount numDisplays; 
    CGDisplayErr err; 
    err = CGGetActiveDisplayList(kMaxDisplays, display, &numDisplays); 

    if (err != CGDisplayNoErr) 
     printf("cannot get list of displays (error %d)\n",err); 
    for (CGDisplayCount i = 0; i < numDisplays; ++i) { 


     CGDirectDisplayID dspy = display[i]; 
     CFDictionaryRef originalMode = CGDisplayCurrentMode(dspy); 
     if (originalMode == NULL) 
      continue; 
       io_service_t service = CGDisplayIOServicePort(dspy); 

     float brightness; 
     err= IODisplayGetFloatParameter(service, kNilOptions, kDisplayBrightness, 
             &brightness); 
     if (err != kIOReturnSuccess) { 
      fprintf(stderr, 
        "failed to get brightness of display 0x%x (error %d)", 
        (unsigned int)dspy, err); 
      continue; 
     } 

     err = IODisplaySetFloatParameter(service, kNilOptions, kDisplayBrightness, 
             new_brightness); 
     if (err != kIOReturnSuccess) { 
      fprintf(stderr, 
        "Failed to set brightness of display 0x%x (error %d)", 
        (unsigned int)dspy, err); 
      continue; 
     } 

     if(brightness > 0.0){ 
     }else{ 
     } 
    }  

} 

私はここにそれを見つけました - http://www.alecjacobson.com/weblog/?tag=brightness

+0

それは同じ回答です:http://stackoverflow.com/questions/3239749/programmatically-change-mac-display-brightness –

+0

あなたはそれを持っています。コックラインの例はここにあります:[Matt Danger](http://mattdanger.net/2008/12/adjust-mac-os-x-display-brightness-from-the-terminal/) –

+0

これは私に " 0x506ef80(エラー-536870201)のディスプレイの明るさを設定できませんでした。 ' – CoffeeRain

関連する問題