バッテリーのパーセンテージを監視するためのVBスクリプトの作成。 > 95の場合は、プラグを抜きます。 < 20の場合は、充電器を差し込むか、または休止状態にしてください。バッテリーが20%以下になると、ポップアッププラグイン充電器とヘリップがあります。 10秒以内にシステムが接続されていても、else
の部分に行き、冬眠します。 「システムは休止しない」部分には入力しません。条件が正常に動作しない場合
hibernate.bat
は、Windows7を休止するための単純なバッチスクリプトです。 コードは決して終わりではありませんfor
ループです。do whileループは、シェルスクリプトで 'continue'を複製するために使用されます。バッテリーが20%に達すると、プラグイン充電器に10秒の時間が与えられます。課金された場合は、ループの繰り返しのために次へ進む必要があります。 「有料の場合」のループは入力されていません。どうして?
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
Set oServices = oLocator.ConnectServer(".","root\wmi")
Set oResults = oServices.ExecQuery("select * from batteryfullchargedcapacity")
For Each oResult In oResults
iFull = oResult.FullChargedCapacity
Next
For i=1 To 10
Do
i=+2
Set oResults = oServices.ExecQuery("select * from batterystatus")
For Each oResult In oResults
iRemaining = oResult.RemainingCapacity
Charging = oResult.Charging
Discharging = oResult.Discharging
Next
iPercent = ((iRemaining/iFull) * 100) Mod 100
If Charging And (iPercent > 95) Then
MsgBox "Unplug Charger. Battery is at " & iPercent & "%", vbInformation, "Battery monitor"
ElseIf Discharging And (iPercent < 20) Then
MsgBox "Plug-in Charger. Battery is at " & iPercent & "%", vbInformation, "Battery monitor"
WScript.Sleep 10000 ' 10 sec
If Charging Then
CreateObject("WScript.Shell").Popup "System won't hibernate", 5, "Good News!!!"
Exit Do
Else
Set shell = CreateObject("WScript.Shell")
shell.CurrentDirectory = "C:\Users\abcd\Desktop"
CreateObject("WScript.Shell").Popup "System will hibernate", 5, "Hmm..."
shell.Run "hibernate.bat"
Exit For
End If
End If
Loop While False
Next
可能な複製(HTTP ://stackoverflow.com/questions/3944062/continue-to-next-iteration-on-vbscript) – anishsane
重複として閉じるために広がっています。 – MikeC