2016-10-26 5 views
1

を変更し、私が必要それはそれぞれの計画のための異なるモードで私のアプリを変更する。私はこの方向にいくつかの解決策を見つけましたが、望ましい結果を得られませんでした。電源プランは、私が</strong><strong>間の高性能</strong>、<strong>パワーセーバー</strong>と<strong></strong>バランスを変更する電源プランの<strong>イベントを取得する方法、を把握しようとしているイベントbeetwen高性能、省電力とバランス

たとえば、プロセッサの現在の電力値を登録するitem.CurrentMhzを使用すると、さまざまな目的に役立ちますが、この出力では電源プランの状態public uint Number; MaxMhz; CurrentMhz; MhzLimit; MaxIdleState; CurrentIdleState;が得られません。たとえば、CurrentIdleStateはPower SaverとHigh Performanceプランで同等です。とにかくそれをどうにか使うことができたら、主な問題は条件付きの結果としてのみイベントとして動作させることができないということです。しかし、実際には、電力計画状態ではなく、電力値はプロセッサごとに異なります。この目標のように、望む結果を得る正しい方法ではないようです。

SystemEvents_PowerModeChangedもこの場合意味がありません。コードが接続されているか切断されている場合は、電源状態の変更イベントのみをとります。

PowerStatus powerStatus = SystemInformation.PowerStatus;と同じですが、コードが接続されているか切断されている場合は、現在の電源状態を識別します。

有用な解決策があるかどうかはわかりませんが、電源プランの変更の間にこのイベントをどのように取得できますか。

答えて

1

3つ以上のプランがあります。コントロールパネルから、プランを編集して新しいプランを作成できます。したがって、3つの値を持つことを期待しないでくださいenum

PBT_APMPOWERSTATUSCHANGEイベントは、電源状態の変化を示します。そのページには、電源プランによって制御される設定を含むSYSTEM_POWER_POLICYの構造が表示されます。

PBT_APMPOWERSTATUSCHANGEイベントを処理する方法が考えられるので、GetSystemPowerStatusと呼んでSYSTEM_POWER_POLICY構造体の現在の電源状態を取得し、アプリケーションにとって重要な値を選択します。

関連する問題

 関連する問題