2012-08-11 6 views
10

내 프로그램에서 Windows 플랫폼의 화면을 흐리게 처리하려고했습니다. 나는 이것을 허용하는 SetMonitorBrightness API가 있다는 것을 알고 있지만, 나를위한 문제는 Windows XP에서도 (API가 지원하지 않는) 화면을 어둡게 할 수 있고 데스크톱 컴퓨터에서도 화면을 어둡게 할 수 있다는 점이다.C++을 사용하는 Windows의 흐린 화면

그래서 조사를 해본 결과 this utility이 문제없이 Windows XP 바탕 화면의 화면을 어둡게하는 것으로 나타났습니다. 필자는 작성자에게 그들이 어떻게 조광기를 구현했는지를 알아 내려고 노력했지만 그들로부터 답장을받지 못했다.

그래서이 사이트의 개발자들에게 궁금한 점이 있습니다. SetMonitorBrightness API가 지원되지 않을 때 어떻게 화면을 어둡게 관리했다고 생각하십니까?

추신. 저는 중소 기업을위한 에너지 절약 프로그램을 작성하려고 애쓰는 초보자 개발자입니다. 비영리 단체이며 Windows 개발자를 고용 할 자금이 없습니다. 우리 컴퓨터의 대부분은 Windows XP 데스크톱입니다. 따라서 웹에서 광범위하게 설명되어있는 SetMonitorBrightness API를 사용할 수 없습니다.

미리 감사드립니다.

답변

3

이 정보가 오래된 경우 용서해주세요.하지만 과거에는 SetDeviceGammaRamp를 사용하여이 작업을 수행했습니다. 'Get'버전은 상태 저장 및 복원에도 사용할 수 있습니다. 나는 그것이 C# 프로그램을 통해 사용되는 것을 보았으므로 더 이상 공통적이지는 않지만 여전히 관련성이있을 수 있습니다.

+0

매우 멋진 추가. 고맙습니다! 나는 그것을 시험해 볼 필요가있다. API의 설명에 "모든 직접 컬러 비디오 보드가로드 가능한 감마 램프를 지원하지는 않습니다." – c00000fd

4

인용 할 경우 Dependancy Walker로 스크린 세이버를 살펴보십시오. 내 생각 엔 그들은 전체 화면 창을 만들고 SetLayeredWindowAttributes()를 사용하여 창에 대한 반투명 설정을 설정하여 화면을 흐리게 표시합니다. 나는 그것이 당신에게 많은 돈을 절약 할 수 있을지 의심 스럽다.

일부 모니터의 측면을 제어 할 수있는 DDC protocol을 살펴볼 수 있습니다. 이 작업을 수행 할 수있는 MS API는 여기 로터리에서 찾을 수 있습니다 : http://msdn.microsoft.com/en-us/library/windows/hardware/ff570290%28v=vs.85%29.aspx 그리고 I2C 기능도 살펴 봐야합니다.

또는 http://www.nicomsoft.com/products/i2c/과 같이 DDC 관련 작업을 수행 할 준비가 된 라이브러리를 찾을 수도 있습니다. 그들은 개인 용도로는 무료이고 상업적 용도로는 무료가 아닌 어둡게하는 응용 프로그램을 가지고 있습니다. 그들은 당신이 그 (것)들을 접촉하고 비영리 재단을 위해다는 것을 설명하는 경우에 당신이 그것을 무료로 사용하는 것을 허용 할지도조차 모른다.

에너지 절약 프로그램으로 이것을 사용하려는 경우 특정 유휴 시간이 지나면 모니터를 끄는 화면 보호기 설정을 사용하지 않는 이유는 무엇입니까? 어떤 경우에

+0

입력 해 주셔서 감사합니다. 내가 설명한 SetLayeredWindowAttributes() 사용에 대해 생각하지 않았다. 그러나 어두운 (검은 색) 픽셀을 표시하지 않으면 적은 에너지를 사용하는 화면이 필요합니까? – c00000fd

+0

당신의 질문에 답하기 위해, 왜 나는 모니터를 끄지 않을 것인가? 우리는 스크린 상에 보여야 할 필요가있는 데이터를 출력하는 특수한 소프트웨어를 가지고 있습니다. 따라서 N 분간 사용하지 않으면 스크린을 어둡게하고 싶습니다. 운영자가 마우스를 움직이면 100 %로 돌아갑니다. – c00000fd

+0

@ user843732 : 에너지 사용량은 적지 만 확실히 알 수있는 유일한 방법은이를 시도하고 전력 소비를 측정하는 것입니다. 픽셀의 불투명도를 변경한다고해서 반드시 많은 전력이 들어오는 백라이트의 밝기가 변경되는 것은 아닙니다. 밝기가 올라가고 검은 색이 회색으로 표시되는 디스플레이를 생각해보십시오. 많은 LCD 화면에는 하나의 백라이트 밝기 제어 만 있고 일부는 세그먼트 화되지만 일부는 픽셀 기준이 아닙니다 (없음?). 귀하의 응용 프로그램에 관해서는 흥미로운 소리. 당신이 일하게되기를 바랍니다. – tinman