#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=roc-k-IT_Logo 32 bit 48x48.ico #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ----------------------------------------------------------------------------------------------- MsgBox_daily Author: Michael Rocholl - roc-k-IT MsgBox_daily erzeugt eine Meldung auf dem Bildschirm, solange der roc-k-IT daily - Job läuft. Die Kommunikation mit dem aufrufenden Batch-System (daily) erfolgt über: . Die Systemvariable _R_SPS . Den Registry-Eintrag HKCC\Software\R_SPS\TEMP__R_IPC_SHUTDOWN_AFTER_DAILY Shutdown am Ende von daily? YES / NO [Default ist NO] . Den Registry-Eintrag HKCC\Software\R_SPS\TEMP__R_IPC_DAILY_FINISHED Ende daily-Job? NO: daily Job läuft noch 0 : daily beendet: Ohne erkennbaren Fehler gelaufen 1 : daily beendet: Mit Fehler beendet . Den Registry-Eintrag HKCC\Software\R_SPS\TEMP__R_IPC_DAILY_STATUS Status des daily-Jobs Returncode: Handle des GUI --------------------------------------------------------------------------------------------------- Änderungen 2022-10-17/Rc : Initiale Version - Entstanden aus MsgBox_backup Jetzt mit Ausgabe des daily-Status --------------------------------------------------------------------------------------------------- Verbesserungsideen: . --------------------------------------------------------------------------------------------------- Copyright by roc-k-IT Dieser Code darf ohne Zustimmung von roc-k-IT nicht kopiert, vervielfältigt oder verwendet werden. #ce ----------------------------------------------------------------------------------------------- AutoItSetOption("MustDeclareVars", 1) #include #include #include #include #include #include #include #include Local $__R_IPC_DAILY_FINISHED ; daily beendet? (NO/0/1) Local $__R_IPC_SHUTDOWN_AFTER_DAILY ; Shutdown ? (YES/NO) Local $__R_IPC_DAILY_STATUS ; Status des daily-Jobs Local $hHandle_GUI ; Handle des GUI Local $hHandle_GUI_Checkbox ; Handle des Checkbox-GUI Local $hHandle_GUI_FilePath ; Handle der Textbox für den Dateinamen der Token-Datei Local $hStatus ; Handle des Status-Fensters Local $sMsg ; Message-Text Local $Checkbox_State ; Status der Checkbox Local $i ; Schleifenindex Local $daily_status_old ; Letzter daily-Status Local $daily_status_akt ; Aktueller daily-Status ; Parameter $__R_IPC_SHUTDOWN_AFTER_DAILY aus Registry auslesen $__R_IPC_SHUTDOWN_AFTER_DAILY=StringUpper(RegRead ("HKCC\Software\R_SPS\TEMP", "__R_IPC_SHUTDOWN_AFTER_DAILY")) $__R_IPC_SHUTDOWN_AFTER_DAILY=StringStripWS($__R_IPC_SHUTDOWN_AFTER_DAILY,$STR_STRIPLEADING+$STR_STRIPTRAILING) ; GUI erstellen $hHandle_GUI = GUICreate("roc-k-IT daily - Bitte PC nicht ausschalten", 500, 200, -1, -1, -1, BitOR ($WS_EX_APPWINDOW,$WS_EX_WINDOWEDGE)) $sMsg &= "Bitte dieses Fenster nicht schließen, sondern nur minimieren (_)" & @CRLF $sMsg &= "Solange nach dem Minimieren das roc-k-IT - Icon auf der Taskleiste erscheint, läuft der Backup." GUICtrlCreateLabel($sMsg, 10, 10, -1 , -1 , $SS_CENTER) ; Checkbox $hHandle_GUI_Checkbox=GUICtrlCreateCheckbox ( "Nach daily herunterfahren?", 10, 160, 290) GUICtrlSetFont(-1, 8.5) GUISetState(@SW_SHOW, $hHandle_GUI) If $__R_IPC_SHUTDOWN_AFTER_DAILY = "YES" Then GUICtrlSetState($hHandle_GUI_Checkbox,$GUI_CHECKED) Else GUICtrlSetState($hHandle_GUI_Checkbox,$GUI_UNCHECKED) EndIf GUISetState(@SW_SHOW, $hHandle_GUI) ; Status Fenster $hStatus = _GUICtrlEdit_Create($hHandle_GUI,'',10, 50, 480, 100, BitOR($WS_VSCROLL, $ES_MULTILINE, $ES_WANTRETURN, $ES_READONLY)) ; Aktivieren Main-Fenster ($hHandle_GUI) GUISetState(@SW_SHOW, $hHandle_GUI) $daily_status_akt="NUL" $daily_status_old="NUL" ; Loop bis __R_IPC_DAILY_FINISHED .ne. "NO" While 1 $__R_IPC_DAILY_FINISHED=StringUpper(RegRead ("HKCC\Software\R_SPS\TEMP", "__R_IPC_DAILY_FINISHED")) If not ($__R_IPC_DAILY_FINISHED = "NO") Then ExitLoop Else If not ($daily_status_akt = $daily_status_old) Then ; --- MsgBox ($MB_OK,"","$daily_status_akt: " & $daily_status_akt) _GUICtrlEdit_AppendText($hStatus, $daily_status_akt & @CRLF) $daily_status_old = $daily_status_akt EndIf Sleep (1000) $daily_status_akt=RegRead ("HKCC\Software\R_SPS\TEMP", "__R_IPC_DAILY_STATUS") EndIf WEnd ; Setzen _R_SHUTDOWN_AFTER_DAILY $Checkbox_State=GUICtrlRead($hHandle_GUI_Checkbox) If $Checkbox_State = $GUI_CHECKED Then RegWrite ("HKCC\Software\R_SPS\TEMP", "__R_IPC_SHUTDOWN_AFTER_DAILY", "REG_SZ", "YES") Else RegWrite ("HKCC\Software\R_SPS\TEMP", "__R_IPC_SHUTDOWN_AFTER_DAILY", "REG_SZ", "NO") EndIf Sleep (1000) ; Ausgabe des daily-Ergebnisses If $Checkbox_State <> $GUI_CHECKED Then Switch $__R_IPC_DAILY_FINISHED Case 0 MsgBox ($MB_OK+$MB_SERVICE_NOTIFICATION,"roc-k-IT daily-Ergebnis","roc-k-IT daily ohne erkennbaren Fehler gelaufen") Case 1 MsgBox ($MB_OK+$MB_SERVICE_NOTIFICATION,"roc-k-IT daily-Ergebnis","roc-k-IT daily mit Fehler beendet!!!" & @CRLF & "Bitte informieren Sie Ihren IT-Betreuer") Case Else MsgBox ($MB_OK+$MB_SERVICE_NOTIFICATION,"roc-k-IT daily-Ergebnis","Fehler bei der Ausgabe des Backup-Status!!!" & @CRLF & "Bitte informieren Sie Ihren IT-Betreuer") EndSwitch EndIf Exit $hHandle_GUI