This commit is contained in:
DavidXanatos 2024-03-09 11:58:40 +01:00
parent 5e03696fb9
commit 17d928d456
9 changed files with 42 additions and 27 deletions

View File

@ -4,6 +4,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [1.13.3 / 5.68.3] - 2024-02-??
### Fixed
- fixed issues with "IsProtectScreen=y" [3656](https://github.com/sandboxie-plus/Sandboxie/pull/3656#discussion_r1518549704)
## [1.13.2 / 5.68.2] - 2024-03-07 ## [1.13.2 / 5.68.2] - 2024-03-07
### Added ### Added

View File

@ -21,8 +21,8 @@
#ifndef _MY_VERSION_H #ifndef _MY_VERSION_H
#define _MY_VERSION_H #define _MY_VERSION_H
#define MY_VERSION_BINARY 5,68,2 #define MY_VERSION_BINARY 5,68,3
#define MY_VERSION_STRING "5.68.2" #define MY_VERSION_STRING "5.68.3"
#define MY_ABI_VERSION 0x56800 #define MY_ABI_VERSION 0x56800
// These #defines are used by either Resource Compiler or NSIS installer // These #defines are used by either Resource Compiler or NSIS installer

View File

@ -263,6 +263,8 @@ static HWND Gui_CreateWindowExW(
static BOOLEAN Gui_CanForwardMsg( static BOOLEAN Gui_CanForwardMsg(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam/*, LRESULT* plResult*/); HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam/*, LRESULT* plResult*/);
static VOID Gui_ProtectScreen(HWND hWnd);
static LRESULT Gui_DefWindowProcA( static LRESULT Gui_DefWindowProcA(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
@ -1391,6 +1393,9 @@ _FX HWND Gui_CreateWindowExW(
--TlsData->gui_create_window; --TlsData->gui_create_window;
if (hwndResult && !hWndParent && Gui_UseProtectScreen)
Gui_ProtectScreen(hwndResult);
// //
// replace window procedure // replace window procedure
// //
@ -1499,6 +1504,9 @@ _FX HWND Gui_CreateWindowExA(
--TlsData->gui_create_window; --TlsData->gui_create_window;
if (hwndResult && !hWndParent && Gui_UseProtectScreen)
Gui_ProtectScreen(hwndResult);
// //
// replace window procedure // replace window procedure
// //
@ -1563,14 +1571,12 @@ _FX BOOLEAN Gui_CanForwardMsg(
_FX VOID Gui_ProtectScreen(HWND hWnd) _FX VOID Gui_ProtectScreen(HWND hWnd)
{ {
if (SbieApi_QueryConfBool(NULL, L"IsProtectScreen", FALSE)) typedef BOOL(*LPSETWINDOWDISPLAYAFFINITY)(HWND, DWORD);
{ static LPSETWINDOWDISPLAYAFFINITY pSetWindowDisplayAffinity = NULL;
typedef BOOL(*LPSETWINDOWDISPLAYAFFINITY)(HWND, DWORD); if(!pSetWindowDisplayAffinity)
LPSETWINDOWDISPLAYAFFINITY pSetWindowDisplayAffinity = (LPSETWINDOWDISPLAYAFFINITY) pSetWindowDisplayAffinity = (LPSETWINDOWDISPLAYAFFINITY)Ldr_GetProcAddrNew(DllName_user32, L"SetWindowDisplayAffinity", "SetWindowDisplayAffinity");
Ldr_GetProcAddrNew(DllName_user32, L"SetWindowDisplayAffinity","SetWindowDisplayAffinity"); if (pSetWindowDisplayAffinity)
if (pSetWindowDisplayAffinity) pSetWindowDisplayAffinity(hWnd, 0x00000001);
pSetWindowDisplayAffinity(hWnd, 0x00000001);
}
} }
@ -1599,9 +1605,6 @@ _FX LRESULT Gui_WindowProcW(
else else
new_lParam = lParam; new_lParam = lParam;
if (uMsg == WM_CREATE)
Gui_ProtectScreen(hWnd);
if (uMsg == WM_QUERYENDSESSION) if (uMsg == WM_QUERYENDSESSION)
{ {
if (SbieApi_QueryConfBool(NULL, "BlockInterferePower", FALSE)) if (SbieApi_QueryConfBool(NULL, "BlockInterferePower", FALSE))
@ -1663,8 +1666,6 @@ _FX LRESULT Gui_WindowProcA(
else else
new_lParam = lParam; new_lParam = lParam;
if (uMsg == WM_CREATE)
Gui_ProtectScreen(hWnd);
if (uMsg == WM_QUERYENDSESSION) if (uMsg == WM_QUERYENDSESSION)
{ {
if (SbieApi_QueryConfBool(NULL, "BlockInterferePower", FALSE)) if (SbieApi_QueryConfBool(NULL, "BlockInterferePower", FALSE))
@ -1693,10 +1694,8 @@ _FX LRESULT Gui_DefWindowProcW(
if (uMsg == WM_SETTEXT && Gui_ShouldCreateTitle(hWnd)) if (uMsg == WM_SETTEXT && Gui_ShouldCreateTitle(hWnd))
new_lParam = (LPARAM)Gui_CreateTitleW((WCHAR *)lParam); new_lParam = (LPARAM)Gui_CreateTitleW((WCHAR *)lParam);
else if (uMsg == WM_CREATE || uMsg == WM_NCCREATE) { else if (uMsg == WM_CREATE || uMsg == WM_NCCREATE)
Gui_ProtectScreen(hWnd);
Gui_CREATESTRUCT_Restore(lParam); Gui_CREATESTRUCT_Restore(lParam);
}
lResult = __sys_DefWindowProcW(hWnd, uMsg, wParam, new_lParam); lResult = __sys_DefWindowProcW(hWnd, uMsg, wParam, new_lParam);
@ -1721,10 +1720,8 @@ _FX LRESULT Gui_DefWindowProcA(
if (uMsg == WM_SETTEXT && Gui_ShouldCreateTitle(hWnd)) if (uMsg == WM_SETTEXT && Gui_ShouldCreateTitle(hWnd))
new_lParam = (LPARAM)Gui_CreateTitleA((UCHAR *)lParam); new_lParam = (LPARAM)Gui_CreateTitleA((UCHAR *)lParam);
else if (uMsg == WM_CREATE || uMsg == WM_NCCREATE) { else if (uMsg == WM_CREATE || uMsg == WM_NCCREATE)
Gui_ProtectScreen(hWnd);
Gui_CREATESTRUCT_Restore(lParam); Gui_CREATESTRUCT_Restore(lParam);
}
lResult = __sys_DefWindowProcA(hWnd, uMsg, wParam, new_lParam); lResult = __sys_DefWindowProcA(hWnd, uMsg, wParam, new_lParam);

View File

@ -56,6 +56,9 @@
#define WM_DDE_EXECUTE (WM_DDE_FIRST+8) #define WM_DDE_EXECUTE (WM_DDE_FIRST+8)
#define WM_DDE_LAST (WM_DDE_FIRST+8) #define WM_DDE_LAST (WM_DDE_FIRST+8)
#define GET_WIN_API(name, lib) \
P_##name name = Ldr_GetProcAddrNew(lib, #name, #name); \
if(!name) return NULL;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Prototypes // Prototypes
@ -468,6 +471,7 @@ typedef BOOL(*P_GetOpenFileNameW)(LPVOID lpofn);
extern BOOLEAN Gui_RenameClasses; extern BOOLEAN Gui_RenameClasses;
extern BOOLEAN Gui_OpenAllWinClasses; // not running in a restricted job extern BOOLEAN Gui_OpenAllWinClasses; // not running in a restricted job
extern BOOLEAN Gui_UseProtectScreen;
extern BOOLEAN Gui_UseProxyService; extern BOOLEAN Gui_UseProxyService;

View File

@ -105,6 +105,7 @@ static ULONG_PTR Gui_HighestAddress = 0;
BOOLEAN Gui_RenameClasses = TRUE; BOOLEAN Gui_RenameClasses = TRUE;
BOOLEAN Gui_OpenAllWinClasses = FALSE; BOOLEAN Gui_OpenAllWinClasses = FALSE;
BOOLEAN Gui_UseProtectScreen = FALSE;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -191,6 +192,8 @@ _FX BOOLEAN Gui_InitClass(HMODULE module)
} }
} }
Gui_UseProtectScreen = SbieApi_QueryConfBool(NULL, L"IsProtectScreen", FALSE);
// //
// hook functions // hook functions
// //

View File

@ -430,10 +430,6 @@ HICON SH32_BorderToIcon(HICON hIcon, COLORREF color)
typedef BOOL(*P_DeleteObject)(HGDIOBJ ho); typedef BOOL(*P_DeleteObject)(HGDIOBJ ho);
typedef BOOL(*P_DeleteDC)(HDC hdc); typedef BOOL(*P_DeleteDC)(HDC hdc);
#define GET_WIN_API(name, lib) \
P_##name name = Ldr_GetProcAddrNew(lib, #name, #name); \
if(!name) return NULL;
GET_WIN_API(GetDC, DllName_user32); GET_WIN_API(GetDC, DllName_user32);
GET_WIN_API(ReleaseDC, DllName_user32); GET_WIN_API(ReleaseDC, DllName_user32);
GET_WIN_API(GetIconInfo, DllName_user32); GET_WIN_API(GetIconInfo, DllName_user32);

View File

@ -2450,7 +2450,7 @@ void CSandMan::OnStatusChanged()
} }
int DynData = theAPI->IsDyndataActive(); int DynData = theAPI->IsDyndataActive();
if (DynData != 1) if (DynData != 1 && COnlineUpdater::VersionToInt(theAPI->GetVersion()) >= COnlineUpdater::VersionToInt("5.68.0"))
{ {
RTL_OSVERSIONINFOEXW versionInfo; RTL_OSVERSIONINFOEXW versionInfo;
memset(&versionInfo, 0, sizeof(RTL_OSVERSIONINFOEXW)); memset(&versionInfo, 0, sizeof(RTL_OSVERSIONINFOEXW));

View File

@ -15,6 +15,13 @@ include(uglobalhotkey-headers.pri)
include(uglobalhotkey-sources.pri) include(uglobalhotkey-sources.pri)
include(uglobalhotkey-libs.pri) include(uglobalhotkey-libs.pri)
CONFIG(release, debug|release):{
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO
}
QMAKE_CXXFLAGS_RELEASE -= -O2
MY_ARCH=$$(build_arch) MY_ARCH=$$(build_arch)
equals(MY_ARCH, ARM64) { equals(MY_ARCH, ARM64) {
# message("Building ARM64") # message("Building ARM64")

View File

@ -2,7 +2,7 @@
#define VERSION_MJR 1 #define VERSION_MJR 1
#define VERSION_MIN 13 #define VERSION_MIN 13
#define VERSION_REV 2 #define VERSION_REV 3
#define VERSION_UPD 0 #define VERSION_UPD 0
#ifndef STR #ifndef STR