Windows
Scripts
VBScript
Chronométrer le temps de redémarrage du PC
Pour : Windows
Voici un script VBS pour chronométrer le temps nécessaire à votre PC pour redémarrer.
Le principe de fonctionnement est simple, au lancement du script, l'horodatage va être enregistré dans une clé de registre et une autre clé de registre va être créé dans l'emplacement "Run" dans le but de relancer le même script au redémarrage.
Une fois la machine de redémarré et le script relancé automatiquement, la différence de temps entre l'horodatage de la clé de registre et l'heure actuel sera faite puis sera affiché dans une fenêtre MsgBox.
Voilà maintenant vous pouvez connaitre le temps nécessaire à votre PC pour redémarrer.
Vous pourrez ainsi mesurer l'éfficacité de chaque actions que vous pourrez faire pour accélérer l'arrêt et le démarrage de votre machine.
Voici à quoi ressemble les fenêtres:
Vous pouvez télécharger le script "ChronoReboot.vbs":
Option Explicit
On Error Resume Next
Dim Wshell, MessageFenetre, TitreFenetre, CleRegA, CleRegB, TempsCleRegA, URLscript, RetourMsgBox, CalculDifferenceTemps
Set Wshell = CreateObject("WScript.Shell")
MessageFenetre = "Veuillez fermer toutes les applications en cours d'execution." & Chr(10) & Chr(10) & "Voulez vous continuer ?"
TitreFenetre = "Chronometrer temps redemarrage"
CleRegA = "HKEY_CURRENT_USER\Software\ChronoReboot\"
CleRegB = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ChronoReboot"
URLscript = """" & WScript.ScriptFullName & """"
TempsCleRegA = Wshell.RegRead(CleRegA & "Times")
if TempsCleRegA = "" then
RetourMsgBox = Msgbox (MessageFenetre, vbYesNo, TitreFenetre)
If RetourMsgBox = vbNo then WScript.quit
Wshell.RegWrite CleRegA & "Times", left(Time,8), "REG_SZ"
Wshell.RegWrite CleRegB, URLscript, "REG_SZ"
Wshell.Run "cmd /c Shutdown -r -t 00", false, 0
else
CalculDifferenceTemps = DateDiff("s",TempsCleRegA,left(Time,8))
Wshell.RegDelete CleRegA
Wshell.RegDelete CleRegB
MsgBox "Redemarrage effectue en " & CalculDifferenceTemps & " secondes", VbInformation, TitreFenetre
end if
WScript.quit
'*** Oblige a declarer toutes les variables dans le code afin d'eviter des erreurs
Option Explicit
'*** Permet de continuer le script même s'il y a une erreur
On Error Resume Next
'*** Declaration des variables
Dim Wshell, MessageFenetre, TitreFenetre, CleRegA, CleRegB, TempsCleRegA, URLscript, RetourMsgBox, CalculDifferenceTemps
'*** Creation de l'objet Shell
Set Wshell = CreateObject("WScript.Shell")
'*** Message de la fenetre
MessageFenetre = "Veuillez fermer toutes les applications en cours d'execution." & Chr(10) & Chr(10) & "Voulez vous continuer ?"
'*** Contenu du titre de la fenetre
TitreFenetre = "Chronometrer temps redemarrage"
'*** Chemein de la cle de registre pour enregistrer l'heure au moment de cliquer sur Oui
CleRegA = "HKEY_CURRENT_USER\Software\ChronoReboot\"
'*** Cle de registre pour enregistrer l'emplacement actuel du script afin de pouvoir le relancer après le redemarrage
CleRegB = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ChronoReboot"
'*** Enregistrer l'emplacement du script dans une variable
URLscript = """" & WScript.ScriptFullName & """"
'*** Variable pour stocker la donnee (Heures, minutes, secondes) de la cle de registre
TempsCleRegA = Wshell.RegRead(CleRegA & "Times")
'*** Condition pour verifier si la variable TempsCleRegA est vide ou pleine
if TempsCleRegA = "" then
'*** Si la variable TempsCleRegA est vide la 1ere fenetre s'affiche
RetourMsgBox = Msgbox (MessageFenetre, vbYesNo, TitreFenetre)
'*** Vous quittez le script VBS si vous avez cliquez sur Non
If RetourMsgBox = vbNo then WScript.quit
'*** Si la variable TempsCleRegA est vide, ecriture de l'heure dans la clé CleRegA
Wshell.RegWrite CleRegA & "Times", left(Time,8), "REG_SZ"
'*** Si la variable TempsCleRegA est vide, ecriture de l'URL du script dans la clé CleRegB
Wshell.RegWrite CleRegB, URLscript, "REG_SZ"
'*** Si la variable TempsCleRegA est vide, redemarrage du PC
Wshell.Run "cmd /c Shutdown -r -t 00", false, 0
'*** Sinon si la variable TempsCleRegA possede une donnee (Temps), execution des lignes ci-dessous
else
'*** Si la variable TempsCleRegA possede une donnee, calcul de la difference en secondes
CalculDifferenceTemps = DateDiff("s",TempsCleRegA,left(Time,8))
'*** Suppression de la clé de registre CleRegA
Wshell.RegDelete CleRegA
'*** Suppression de la clé de registre CleRegB
Wshell.RegDelete CleRegB
'*** Affichage du temps dans un MsgBox
MsgBox "Redemarrage effectue en " & CalculDifferenceTemps & " secondes", VbInformation, TitreFenetre
'*** Fin de la condition
end if
'*** Quitter le script
WScript.quit
