Schreiben eines VB-Skripts zur Überwachung des Batterieprozentsatzes. Wenn es> 95 ist, ziehen Sie den Stecker aus der Steckdose. Wenn < 20, Stecker Ladegerät oder sonst Winterschlaf und so weiter. Wenn die Batterie unter 20% sinkt, gibt es ein Popup-Plug-in-Ladegerät & hellip; und obwohl innerhalb von 10 sec das System eingesteckt ist, geht es an else
teil und überwintert. Es wird nicht "System wird nicht überwintert" angezeigt.wenn die Bedingung nicht wie gewünscht funktioniert
hibernate.bat
ist ein einfaches Batch-Skript zum Winterschlaf Windows7. Der Code ist eine nie endende for
-Schleife, in der while-Schleife verwendet wird, um 'continue' in Shell-Skripten zu replizieren. Wenn der Akku 20% erreicht, wird dem Plugin-Ladegerät 10 Sekunden Zeit zugewiesen. Wenn geladen, muss es für die Schleifeniteration zum nächsten gehen. "Wenn geladen" Schleife wird nicht eingegeben. Warum?
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
Mögliches Duplikat [ "Weiter" (zur nächsten Iteration) auf VBScript] (http : //stackoverflow.com/questions/3944062/continue-to-next-iteration-on-vbscript) – anishsane
Zum Schließen als Duplikat erweitert. – MikeC