Voici une petite fonction que je viens de créer (je n'ai pas trouvé d'équivalent) qui permet d'obtenir des informations sur la date et l'heure du démarrage de Windows.
Permet d'obtenir :
- la date du démarrage
- le temps écoulé depuis le démarrage (en différents formats)
La fonction et un exemple ici :
► Afficher le texte
Code : Tout sélectionner
#include <Date.au3>
; Exemple 1, on récupère juste la date de démarrage de Windows
$text = "Windows a démarré le " & _upTime()
MsgBox (0, "_uptime(0)", $text )
; Exemple 2, on récupère la date de démarrage de Windows et le temps écoulé depuis
$upTimeInfo = _upTime(1)
$fromTxt = StringRegExpReplace($upTimeInfo[8], "(\d*) (\d{2}):(\d{2}):(\d{2})", "$1 jours(s), $2 heures, $3 minutes et $4 secondes")
$text = "Windows a démarré le " & $upTimeInfo[0] & @CR & _
" - depuis " & $fromTxt & @CR & _
" - soit : " & $upTimeInfo[1] & " année(s)" & @CR & _
" - soit : " & $upTimeInfo[2] & " mois" & @CR & _
" - soit : " & $upTimeInfo[3] & " jour(s)" & @CR & _
" - soit : " & $upTimeInfo[4] & " semaine(s)" & @CR & _
" - soit : " & $upTimeInfo[5] & " heure(s)" & @CR & _
" - soit : " & $upTimeInfo[6] & " minute(s)" & @CR & _
" - soit : " & $upTimeInfo[7] & " secondes"
MsgBox(0, "_uptime(1)", $text )
; ==== _upTime() ============================================================================================
; Description : Returns informations about Windows last boot time
; Syntax : _upTime( [$extend] )
; Parameters : $extend = 0 (default) or 1
; Return : $extend = 0
; Returns a string with the Windows last boot time using YYYY/MM/DD HH:MM:SS format
; $extend = 1
; Returns an array containing the elapsed time (days, hours, minutes and seconds)
; from Windows last boot time :
; $array[0] Windows last boot time
; $array[1] total of elapsed time from Windows last boot time (in Years)
; $array[2] total of elapsed time from Windows last boot time (in Months)
; $array[3] total of elapsed time from Windows last boot time (in Days)
; $array[4] total of elapsed time from Windows last boot time (in Weeks)
; $array[5] total of elapsed time from Windows last boot time (in Hours)
; $array[6] total of elapsed time from Windows last boot time (in Minutes)
; $array[7] total of elapsed time from Windows last boot time (in Seconds)
; $array[8] elapsed time from Windows last boot time using DD HH:MM:SS format
; Returns 0 if the function fails to get information
; Required : <Date.au3>
; ===========================================================================================================
Func _upTime($ext = 0)
Local $aReturn[9]
; WMI Method (proper method)
Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
If IsObj($objWMIService) Then
Local $colItems = $objWMIService.ExecQuery("Select * From Win32_OperatingSystem", "WQL", 0x10 + 0x20)
If IsObj($colItems) Then
For $objItem In $colItems
$aReturn[0] = StringRegExpReplace($objItem.LastBootUpTime, "\A(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}).*", "$1/$2/$3 $4:$5:$6")
Next
EndIf
EndIf
; Returns 0 if each method fails
If $aReturn[0] == "" Then Return 0
$now = _NowCalc()
; Calculates the difference of time since the last starup
$aReturn[1] = _DateDiff( 'Y' , $aReturn[0], $now ) ; Difference in years
$aReturn[2] = _DateDiff( 'M' , $aReturn[0], $now ) ; Difference in months
$aReturn[3] = _DateDiff( 'D' , $aReturn[0], $now ) ; Difference in days
$aReturn[4] = _DateDiff( 'w' , $aReturn[0], $now ) ; Difference in weeks
$aReturn[5] = _DateDiff( 'h' , $aReturn[0], $now ) ; Difference in hours
$aReturn[6] = _DateDiff( 'n' , $aReturn[0], $now ) ; Difference in minutes
$aReturn[7] = _DateDiff( 's' , $aReturn[0], $now ) ; Difference in secondes
$d = Int( $aReturn[7] / 3600 / 24 )
$secLeft = $aReturn[7] - ( $d * 3600 * 24 )
$h = Int ($secLeft / 3600)
$secLeft = $secLeft - ( $h * 3600 )
$m = Int ( $secLeft / 60 )
$s = $secLeft - ( $m * 60 )
If $h < 10 Then $h = "0" & $h
If $m < 10 Then $m = "0" & $m
If $s < 10 Then $s = "0" & $s
$aReturn[8] = $d & " " & $h & ":" & $m & ":" & $s
If $ext = 0 Then
Return $aReturn[0]
ElseIf $ext = 1 Then
Return $aReturn
EndIf
Return 0
EndFunc ; ---> _PowerOnComputer()