From eb4b3fae4c5c9392dddc3ee7a188d32b32ef6343 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Tue, 28 Jul 2020 08:51:22 +0200 Subject: [PATCH] Add timestamp to warning prompt title --- .../LockIfOutOfLogonHours.cpp | 22 +++++++++++++----- LockIfOutOfLogonHours/LockIfOutOfLogonHours.h | 4 ++-- .../LockIfOutOfLogonHours.rc | Bin 3530 -> 3552 bytes 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/LockIfOutOfLogonHours/LockIfOutOfLogonHours.cpp b/LockIfOutOfLogonHours/LockIfOutOfLogonHours.cpp index da3d6fa..3b57bfb 100644 --- a/LockIfOutOfLogonHours/LockIfOutOfLogonHours.cpp +++ b/LockIfOutOfLogonHours/LockIfOutOfLogonHours.cpp @@ -127,19 +127,28 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine LockWorkStation(); } - time.wMinute += 10; - GetLogonHoursIndices(&time, &time_zone, &lIndexSA, &lIndexBit); + SYSTEMTIME timeFuture = time; + timeFuture.wMinute += 10; + GetLogonHoursIndices(&timeFuture, &time_zone, &lIndexSA, &lIndexBit); if (FAILED(SafeArrayGetElement(V_ARRAY(&varLogonHours), &lIndexSA, &bData))) { uiResult = 8; // Logon hour index not found goto _cleanup5; } if (uiResult == 0 && !(bData & (1 << lIndexBit))) { - // Within logon hours now, but out of logon hours in 10 min. + // Within logon hours now, but out of logon hours in up to 10 minutes. HINSTANCE hShell32Res = LoadLibraryEx(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_IMAGE_RESOURCE); - LPTSTR lpTitle, lpMsgFmt, lpMsg; - LoadString(hInstance, IDS_WARNING_TITLE, (LPTSTR)&lpTitle, 0); + LPTSTR lpTitleFmt; + LoadString(hInstance, IDS_WARNING_TITLE_FMT, (LPTSTR)&lpTitleFmt, 0); + TCHAR szDate[0x100]; + GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &time, NULL, szDate, _countof(szDate)); + szDate[_countof(szDate) - 1] = 0; + TCHAR szTime[0x100]; + GetTimeFormat(LOCALE_USER_DEFAULT, 0, &time, NULL, szTime, _countof(szTime)); + szTime[_countof(szTime) - 1] = 0; + LPTSTR lpTitle = FormatMsg(lpTitleFmt, szDate, szTime); + LPTSTR lpMsgFmt; LoadString(hInstance, IDS_WARNING_MSG_FMT, (LPTSTR)&lpMsgFmt, 0); - lpMsg = FormatMsg(lpMsgFmt, 70 - time.wMinute); + LPTSTR lpMsg = FormatMsg(lpMsgFmt, 60 - time.wMinute); MSGBOXPARAMS params = { sizeof(MSGBOXPARAMS), // cbSize NULL, // hwndOwner @@ -151,6 +160,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine }; MessageBoxIndirect(¶ms); LocalFree(lpMsg); + LocalFree(lpTitle); FreeLibrary(hShell32Res); } diff --git a/LockIfOutOfLogonHours/LockIfOutOfLogonHours.h b/LockIfOutOfLogonHours/LockIfOutOfLogonHours.h index 61d166a..fd5697d 100644 --- a/LockIfOutOfLogonHours/LockIfOutOfLogonHours.h +++ b/LockIfOutOfLogonHours/LockIfOutOfLogonHours.h @@ -9,7 +9,7 @@ #ifndef __LOCK_IF_OUT_OF_LOGON_HOURS_H__ #define __LOCK_IF_OUT_OF_LOGON_HOURS_H__ -#define IDS_WARNING_TITLE 0 -#define IDS_WARNING_MSG_FMT 1 +#define IDS_WARNING_TITLE_FMT 0 +#define IDS_WARNING_MSG_FMT 1 #endif diff --git a/LockIfOutOfLogonHours/LockIfOutOfLogonHours.rc b/LockIfOutOfLogonHours/LockIfOutOfLogonHours.rc index eca22f4be10daffb8cc3de0c051e0e832b5dfae6..de2e39479bc34155595b32bb6225f4da023494bd 100644 GIT binary patch delta 66 zcmX>l{XlvH6OVp8gByb{LkNQcgA#)eLq0<~5a$7T9zeR3p@^Xv$aY{*WiSNNstiVx P<$25*6*dR+lrsVVzy=Ic delta 28 kcmaDLeM))*6A!ZjgTiD^9_h(49DI`