# -*- coding: utf-8 -*- from setuphelpers import * from setupdevhelpers import * import psutil import time import datetime import ctypes try: from waptenterprise.waptservice.enterprise import get_active_sessions, start_interactive_process except: from waptservice.enterprise import get_active_sessions, start_interactive_process import win32api import sys import platform message_box_title = "Information message about your PC uptime - The IT Support" message_box_string = "The computer need restart for apply update" def install(): pass def audit(): if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'): print("Une mise à jour necéssite un redémarrage") run_session_setup(control.package) return "WARNING" return "OK" def session_setup(): # Avoiding user pop-up spamming # check_timeout = 1800 # date_format = "%Y-%m-%d %H:%M:%S" # datetime.datetime.strptime(date_pwsh, "%Y/%m/%d %H:%M:%S") # date = run_powershell('Get-Date -Format "yyyy-MM-dd HH:mm:ss"') # datetime.datetime.now() # date_reg = registry_readstring(HKEY_CURRENT_USER, r"SOFTWARE\WAPT\Shutdown Information", "Last Check") # if date_reg != "": # date_diff = datetime.datetime.strptime(date, date_format) - datetime.datetime.strptime(date_reg, date_format) # if date_diff.total_seconds() < check_timeout: # return "Already checked" # registry_set(HKEY_CURRENT_USER, r"SOFTWARE\WAPT\Shutdown Information", "Last Check", date) # Send message to connected user version = installed_softwares("wapt")[0]["version"] if version > Version("2.5"): print("Envoi du message 2.5") ask_message(message_box_title, message_box_string, flags=0, raise_error=False,) else: print("Envoi du message pre 2.5") message_box( message_box_title, message_box_string ) def run_session_setup(package_name): for session_id in get_active_sessions(): start_interactive_process("wapt-get", "--hide session-setup %s -f" % package_name, session_id=session_id) # , minimize=True def message_box(title, text, style=0): if platform.python_version_tuple()[0] == "3": import importlib importlib.reload(sys) else: reload(sys) sys.setdefaultencoding("utf-8") MB_OK = 0 MB_OKCANCEL = 1 MB_YESNOCANCEL = 3 MB_YESNO = 4 ctypes.windll.user32.MessageBoxW(0, "%s" % text, "%s" % title, style) return