2012-03-15 2 views
2

Objective-C에서 Mac의 디스플레이 밝기를 조정하는 방법이 있습니까? 나는 민감한 눈을 가졌으며 때로는 더 어둡게 보일 수있는 것처럼 보인다. 괴짜와 어둠에 대해 Jeff's blog post과 결합하면 꽤 짜증납니다.Mac 디스플레이 밝기 조정 Objective-C?

디스플레이가 숫자 값으로 설정 될 수 있다면 일반 화면 밝기보다 낮게 설정할 수 있습니다. 나는 인터넷 검색을 해봤지만 모든 것들은 아이폰에 관한 것이었다. 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

알겠습니다. cocmmand 라인 예제는 다음에서 찾을 수 있습니다 : [Matt Danger] (http://mattdanger.net/2008/12/adjust-mac-os-x-display-brightness-from-the-terminal/) –

+0

그것은' 디스플레이의 밝기를 설정하지 못했습니다. 0x506ef80 (오류 -536870201) ' – CoffeeRain