2017-11-25 10 views
1

ノートパソコンのバッテリーのパーセンテージが80%に達したときに私のプログラムで簡単なダイアログフォームを表示したかったのです。私はSystemInformation.PowerStatus.BatteryLifePercent を使用して、充電または放電中に変化するバッテリのパーセンテージを監視するタイマーイベントを使用し、上述の方法を使用してバッテリが80%の充電に達するのをチェックしました。以下はそのコードです。はSystemInformation.PowerStatus.BatteryLifePercent = some numberのイベントを発生させることはできません

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Timer1.Enabled = True 
    TimerChargeMonitor.Interval = 100 
    TimerChargeMonitor.Enabled = True 
End Sub 

Private Sub TimerChargeMonitor_Tick(sender As Object, e As EventArgs) Handles TimerChargeMonitor.Tick 
    If SystemInformation.PowerStatus.BatteryLifePercent = 0.8 Then 
     NotifBox.Show() 
     TimerChargeMonitor.Enabled = False 
    End If 
End Sub 

問題はありませんか?バッテリーのパーセンテージが80%または他の数字に達すると、ダイアログ・フォームが表示されません。

答えて

0

コードに調整が必要です。
SystemInformation.PowerStatus.BatteryLifePercentは、単一の値を返します。
>=でテストする方が良いでしょう。その値は、ここで期待している値と多少異なる場合があるからです。

次に、メッセージボックスを表示する前にタイマーを停止する必要があります(NotifBox.Show()の場合)。
だからあなたのコードは次のようになります。

注意点としては
If SystemInformation.PowerStatus.BatteryLifePercent >= 0.8 Then 
    TimerChargeMonitor.Enabled = False 
    TimerChargeMonitor.Stop() 
    NotifBox.Show() 
End If 


、目盛りの間隔は、このアプリケーションのためにあまりにも低いと思われます。
TimerChargeMonitor.Interval = 5000
に設定されている可能性があります(他のタイマーはここではわかりません)。

+0

ありがとうございました。しかし、1つの質問は、このアプリケーションのタイマー間隔を低く(100ms)保つことに何が間違っていますか? 5000 – Somanna

+0

@ Soomannaに設定することをお勧めします。なぜなら、あなたは理由のついてプロセッサー・サイクルを食べるからです。バッテリーの充電状況を10秒ごとに確認することは、メリットがありません。 – Jimi

関連する問題