私は、プログラムが特定の条件下でモニターの明るさを調整できるようにしたいだけです。そこで、Windows Power Management APIを調べたところ、うまくいくように思われるものがいくつか見つかりました。私がまとめたコードのコア (基本的にはthisを参照) は次のようになります。
GUID *pPwrGUID;
GUID subGUID = GUID_VIDEO_SUBGROUP;
GUID BriGUID = GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS;
PowerGetActiveScheme(NULL, &pPwrGUID);
PowerWriteACValueIndex(NULL, pPwrGUID, &subGUID, &BriGUID, 0);
これは十分に単純に思えます。私が抱えている問題は、PowerWriteACValueIndex がエラー コード 2: ファイルが見つかりませんを返すことです。これはあまり意味がありません。問題はインデックス値 (PowerWriteACValueIndex 関数の最後のパラメーター) が正しくないことだと考えていましたが、PowerReadACValueIndex を使用して書き込みを読み取りに変更すると (正当な値を取得できるかどうかを確認するため)、2 が返されます。すでにチェックして、GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS がヘッダー ファイルの GUID_VIDEO_SUBGROUP の下にあることを確認しました。
私が考えることができる唯一の他の情報は、WINVERが0x0600(vista)に設定されていることです。
ここで何がうまくいかないのでしょうか?それはかなり簡単なプロセスであるように思えますが、私は本当に運が悪いです. ありがとうございました。