From 7505295e33e7a1932fe898be1e8c37c861e15227 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 29 Nov 2024 20:12:46 +0100 Subject: [PATCH] Revert "use SetThreadExecutionState with ES_DISPLAY_REQUIRED" This reverts commit eafcdaf95dddc90febb94ee99fe2ebd0da56f103. --- src/dllmain.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dllmain.c b/src/dllmain.c index 37936a1..39d7dbb 100644 --- a/src/dllmain.c +++ b/src/dllmain.c @@ -23,6 +23,7 @@ PVOID FakePrimarySurface; HMODULE g_ddraw_module; +static BOOL g_screensaver_disabled; BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) { @@ -131,7 +132,15 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) set_aware(); } - SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED); + BOOL screensaver_enabled = FALSE; + SystemParametersInfoA(SPI_GETSCREENSAVEACTIVE, 0, &screensaver_enabled, 0); + + if (screensaver_enabled) + { + SystemParametersInfoA(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, 0); + g_screensaver_disabled = TRUE; + } + indeo_enable(); timeBeginPeriod(1); hook_init(); @@ -151,7 +160,11 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) keyboard_hook_exit(); dinput_hook_exit(); hook_exit(); - SetThreadExecutionState(ES_CONTINUOUS); + + if (g_screensaver_disabled) + { + SystemParametersInfoA(SPI_SETSCREENSAVEACTIVE, TRUE, NULL, 0); + } ULONG(WINAPI* remove_handler)(PVOID) = (void*)real_GetProcAddress(GetModuleHandleA("Kernel32.dll"), "RemoveVectoredExceptionHandler");