From 355e6caad360f2a5acedb125a3f421b8aee7a2e0 Mon Sep 17 00:00:00 2001 From: "Jose M. Guisado" Date: Fri, 10 Dec 2021 12:52:48 +0100 Subject: #1065 windows: use shutdown for poweroff and reboot operations Running ogClient as a service (non interactive user) breaks poweroff and reboot using ExitWindowsEx function in user32.dll. Spawn a subshell using os.system and use the 'shutdown' command instead. This is a terminating command, we don't need fine grain from subprocess module. --- src/windows/ogOperations.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/windows/ogOperations.py') diff --git a/src/windows/ogOperations.py b/src/windows/ogOperations.py index 6bc5e93..d20b52c 100644 --- a/src/windows/ogOperations.py +++ b/src/windows/ogOperations.py @@ -19,10 +19,6 @@ from pystray import Icon, Menu, MenuItem from src.ogRest import ThreadState -EWX_POWEROFF=0x00000008 -EWX_REBOOT=0x00000002 - - def _create_default_image(): """ Creates a default image for the tray icon. Use in case @@ -75,14 +71,12 @@ class OgWindowsOperations: raise NotImplementedError def poweroff(self): - user32 = ctypes.WinDLL('user32') systray_p.terminate() - user32.ExitWindowsEx(EWX_POWEROFF, 0x0) + os.system('shutdown -s -t 0') def reboot(self): - user32 = ctypes.WinDLL('user32') systray_p.terminate() - user32.ExitWindowsEx(EWX_REBOOT, 0x0) + os.system('shutdown -r -t 0') def shellrun(self, request, ogRest): cmd = request.getrun() -- cgit v1.2.3-18-g5258