[autoit]
#NoTrayIcon
[/autoit]#NoTrayIcon
[/autoit]Hallo AutoIt Leihe,
Ok, meine Script ist länger, aber sofern du die genaue Boottime benötigst.
Dim $BootTime
Dim $TDYear, $TDMonth, $TDDay, $TDHour, $TDMinute, $TDSeconds
Dim $Min5Var
; Einstellunen------------------------------------------------------------
AutoItSetOption('TrayIconHide')
$Debug=1
$ExecutionTime=5
; ------------------------------------------------------------------------
; Rufe BootTime Function auf - Hier wird über WMI die BootTime abgefragt.-
BootTime()
; ------------------------------------------------------------------------
; Teile den BootTime String in Jahr Monat Tag Stunde Minute Sekunde auf --
$Year=StringLeft($BootTime, 4)
$Month=StringMid($BootTime, 5, 2)
$Day=StringMid($BootTime, 7, 2)
$Hour=StringMid($BootTime, 9, 2)
$Minute=StringMid($BootTime, 11, 2)
$Seconds=StringMid($BootTime, 13, 2)
; ------------------------------------------------------------------------
; Schreibe die aus WMI geholte Zeit in die Console -----------------------
ConsoleWrite('> Last Boot Up Time : ' & $BootTime & @CRLF)
; ------------------------------------------------------------------------
; Gebe dieser Variable dasselbe Aussehen für die jetzige Zeit ------------
; und schreibe den Wert in die Console -----------------------------------
; Ist damits in der Console schöner aussieht -----------------------------
$TimeNow=@YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC
ConsoleWrite('> Jetziger Zeitstempel : ' & $TimeNow & @CRLF)
; ------------------------------------------------------------------------
; Teile den TimeNow String in Jahr Monat Tag Stunde Minute Sekunde auf ---
; und berechne die Differenz des einzelnen Arguments ---------------------
; Entscheide ausserdem ob Maschine mehr als $ExecutionTime läuft ---------
GetTimeDifferenz()
; ------------------------------------------------------------------------
; Zeige entsprechende Meldung in der Console an. -------------------------
; Hier kann man auch etwas anderes ausführenn lassen ---------------------
If $Min5Var Then
ConsoleWrite('> Der Rechner läuft : ' & $TDDay & ' Jahre ' & $TDMonth & ' Monate ' & $TDDay & ' Tage ' & $TDHour & ' Stunden ' & $TDMinute & ' Minuten ' & $TDSeconds & ' Sekunden.' & @CRLF)
ConsoleWrite('> Der Rechner läuft länger als ' & $ExecutionTime & ' Minuten.' & @CRLF)
$ExitCode=0
Else
ConsoleWrite('> Der Rechner läuft : ' & $TDDay & ' Jahre ' & $TDMonth & ' Monate ' & $TDDay & ' Tage ' & $TDHour & ' Stunden ' & $TDMinute & ' Minuten ' & $TDSeconds & ' Sekunden.' & @CRLF)
ConsoleWrite('> Der Rechner läuft nicht länger als ' & $ExecutionTime & ' Minuten.' & @CRLF)
$ExitCode=-1
EndIf
; ------------------------------------------------------------------------
; Hiermit wird das Programm beendet sowie ein ErrorCode ausgegeben. ------
Terminate ($Exitcode)
; ------------------------------------------------------------------------
Func Terminate($Exitcode)
Exit ($Exitcode)
EndFunc
Func BootTime()
$COMPUTERNAME=EnvGet("COMPUTERNAME")
Local $ProductCode, $ProductName, $Val
Local $objItems
Local $objWMI
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
$objItems = $objWMI.ExecQuery('Select * from Win32_OperatingSystem', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($objItems) Then
For $objItem In $objItems
$oBootTime = $objItem.LastBootUptime
Next
EndIf
$BootTimeArray=StringSplit($oBootTime,".",1) ; Entferne alle Zahlen nach dem . damit es in der Console schöner aussieht.
$BootTime=$BootTimeArray[1]; Gib mir den Teil des Arrays links vom . (Punkt)
EndFunc
Func GetTimeDifferenz()
If @YEAR < $Year Then $TDYear=(@YEAR-$Year)*-1
If @YEAR = $Year Then $TDYear=0
If @YEAR > $Year Then $TDYear=@YEAR-$Year
If $Debug Then ConsoleWrite('> Time Differenz Year = ' & $TDYear & @CRLF)
If @MON < $Month Then $TDMonth=(@MON-$Month)*-1
If @MON = $Month Then $TDMonth=0
If @MON > $Month Then $TDMonth=@MON-$Month
If $Debug Then ConsoleWrite('> Time Differenz Month = ' & $TDMonth & @CRLF)
If @MDAY < $Day Then $TDDay=(@MDAY-$Day)*-1
If @MDAY = $Day Then $TDDay=0
If @MDAY > $Day Then $TDDay=@MDAY-$Day
If $Debug Then ConsoleWrite('> Time Differenz Day = ' & $TDDay & @CRLF)
If @HOUR < $Hour Then $TDHour=(@HOUR-$Hour)*-1
If @HOUR = $Hour Then $TDHour=0
If @HOUR > $Hour Then $TDHour=@HOUR-$Hour
If $Debug Then ConsoleWrite('> Time Differenz Hour = ' & $TDHour & @CRLF)
If @MIN < $Minute Then $TDMinute=(@MIN-$Minute)*-1
If @MIN = $Minute Then $TDMinute=0
If @MIN > $Minute Then $TDMinute=@MIN-$Minute
If $Debug Then ConsoleWrite('> Time Differenz Minute = ' & $TDMinute & @CRLF)
If @SEC < $Seconds Then $TDSeconds=(@SEC-$Seconds)*-1
If @SEC = $Seconds Then $TDSeconds=0
If @SEC > $Seconds Then $TDSeconds=@SEC-$Seconds
If $Debug Then ConsoleWrite('> Time Differenz Seconds = ' & $TDSeconds & @CRLF)
If $TDYear >= 1 Then
$Min5Var=True
Return $Min5Var
ElseIf $TDMonth >= 1 Then
$Min5Var=True
Return $Min5Var
ElseIf $TDDay >= 1 Then
$Min5Var=True
Return $Min5Var
ElseIf $TDHour >= 1 Then
$Min5Var=True
Return $Min5Var
ElseIf $TDMinute >= $ExecutionTime Then
$Min5Var=True
Return $Min5Var
EndIf
$Min5Var=False
Return
EndFunc
TrayIcon wird nicht angezeigt.
Schönen Abend.