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