10

プログラムから Windows プラットフォームの画面を暗くすることを検討しています。これを可能にする SetMonitorBrightness API があることは知っていますが、私にとっての問題は、Windows XP でも画面を暗くすることができ (その API はサポートしていません)、デスクトップ コンピューターでも画面を暗くできるとよいということです。

そこで、調査を行ったところ、問題なく Windows XP デスクトップの画面を暗くするこのユーティリティを見つけました。著者に連絡して、調光器をどのように実装したかを調べようとしましたが、返事がありませんでした。

SetMonitorBrightness API がサポートされていないときに、どうやって画面を暗くすることができたと思いますか?

PS。私自身、中小企業向けの省エネプログラムを作成しようとしている初心者の開発者です。これは非営利団体であり、これを行うために Windows 開発者を雇う資金がありません。私たちのコンピューターのほとんどは Windows XP デスクトップです。ご覧のとおり、SetMonitorBrightness API は Web 上で広く文書化されているため、使用できません。

前もって感謝します。

4

2 に答える 2

4

引用する場合は、Dependancy Walker でスクリーンセーバーを見てください。私の推測では、彼らは全画面ウィンドウを作成し、 SetLayeredWindowAttributes() を使用してウィンドウに半透明の設定を設定し、画面が暗く見えるようにしています。私はそれがあなたに多くのお金を節約するとは思えません.

一部のモニターの側面を制御できるようにするDDC プロトコルを調べることができます。これを可能にする 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 を実行する既製のライブラリを探すこともできます。彼らも、個人使用は無料で、商用使用は無料ではない調光アプリケーションを持っています. 彼らに連絡して非営利団体向けであることを説明すれば、無料で使用することさえ許可してくれるかもしれません。

省電力プログラムとしてこれを実行しようとしている場合は、一定時間アイドル状態になった後にモニターをオフにするスクリーンセーバー設定を使用してみませんか? いかなる場合でも

于 2012-08-11T21:20:43.323 に答える
3

この情報が古くなっている場合は申し訳ありませんが、私は過去に SetDeviceGammaRamp を使用してこれを実行しました。「取得」バージョンは、状態の保存と復元にも使用できます。C# プログラムで使用されているのを見たことがあるので、あまり一般的ではありませんが、まだ関連性があるかもしれません。

于 2012-08-11T21:09:19.413 に答える