Releases: EXLOUD/Windows-Update-Pauser
v1.4.1
📝 Changelog — Windows Update Pauser
v1.4.0 → v1.4.1
✅ New Features
- Added restart requirement after pausing or resuming updates.
The app now clearly indicates:
⚠️ Restart required to apply pause/⚠️ Restart required to resume updates. - Introduced a dedicated restart button (
🔄 Restart Now) that performs an immediate system reboot with proper privileges. - Implemented accurate OS version detection:
IsWindows10Only()IsWindows11()
Enables future OS-specific configuration logic.
🔒 Enhanced Security & Update Blocking
- Expanded list of disabled Windows services via registry:
WaaSMedicSvc(fully disabled withStart = 4and zeroedFailureActions)uhssvc(Windows 10 only)- Additional services (
wuauserv,DoSvc,UsoSvc) are prepared but commented out for safety.
- Added extra group policies under
HKLM\SOFTWARE\Policies:AllowAutoWindowsUpdateDownloadOverMeteredNetwork = 0— blocks updates on metered connections.NoAutoRebootWithLoggedOnUsers = 1— prevents automatic reboots when users are logged in.AllowMUUpdateService = 0— disables Microsoft Update.PreventDeviceMetadataFromNetwork = 1— blocks device metadata downloads.
- On resume, original
FailureActionsare restored forWaaSMedicSvcto ensure service stability.
🖥️ UI & UX Improvements
- Window is now more compact:
- Old:
455 × 245→ New:445 × 210 - All UI elements slightly reduced for better visual balance.
- Old:
- Improved button press animation:
Replaced downward shift with a 98% scale-down effect ("press-in" feel). - Added a subtle vertical gradient background for depth and modern aesthetics.
- Shadows and corner radii now scale with DPI, ensuring crisp visuals on high-resolution displays.
📏 High-DPI (Per-Monitor V2) Support
- Introduced global
g_app.dpiScalefor consistent scaling. - Uses
AdjustWindowRectExForDpi()to accurately compute window size including non-client area (borders, title bar). - Removed legacy
ApplyDpiTransform()— scaling is now handled at layout level, not render transform. - Window is automatically centered on the active monitor with correct DPI scaling.
🛠 Other Improvements
- Single-instance logic: Improved detection of existing window via
EnumWindowsfor greater reliability. - Status panel behavior:
- In "Restart required" mode, hover no longer changes the message (previously showed GitHub link).
- GitHub link is only shown when no restart is pending.
- Codebase is now more modular and maintainable, with dedicated functions for OS version, DPI, and color logic.
💡 Note: These changes make the application more reliable, clearer about system requirements, and visually polished, especially on high-DPI and Windows 11 systems.
🛠 Technical details
Compiler: llvm-mingw 20250924 with LLVM 21.1.2 - UCRT
Targets: x86_64-w64-windows-gnu, i686-w64-windows-gnu, aarch64-w64-windows-gnu
v1.4.0
Windows Update Pauser v1.4.0
What’s new:
- Switched from GDI to Direct2D
- Added the single-instance restriction (now you can open only single windows simultaneously).
Complete visual overhaul: Added animated diagonal gradients, glassmorphism effects, and a subtle animated "orb" background.
Introduced a glowing (glow) effect around the button on hover for a premium feel.
Re-sized window size (from 460x340 to 450x255) and enlarged corner radii for a softer, more modern look.
Used Antialiasing (D2D1_ANTIALIAS_MODE_PER_PRIMITIVE).
Updated color palette: Vibrant gradient buttons.
Updated typography: Now uses the Segoe UI Variable font family with different weights for improved readability and a modern aesthetic.
v1.3.18
// 1. НОВІ INCLUDES:
#include <tlhelp32.h>
// 2. НОВІ КОНСТАНТИ:
const int maxWaitTime = 2000; // 2 секунди максимум
const int checkInterval = 50; // Перевіряємо кожні 50ms
// 3. НОВІ ФУНКЦІЇ (повний код):
bool IsProcessRunning(const wchar_t* processName) {
bool found = false;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot != INVALID_HANDLE_VALUE) {
PROCESSENTRY32W pe32;
pe32.dwSize = sizeof(PROCESSENTRY32W);
if (Process32FirstW(hSnapshot, &pe32)) {
do {
if (_wcsicmp(pe32.szExeFile, processName) == 0) {
found = true;
break;
}
} while (Process32NextW(hSnapshot, &pe32));
}
CloseHandle(hSnapshot);
}
return found;
}
bool TerminateProcessByName(const wchar_t* processName) {
// [40+ рядків коду для завершення процесу]
}
// 4. НОВІ ОПЕРАЦІЇ В ApplyPause():
- SetRegString(L"PauseUpdatesStartTime", startTime)
- SetRegDWORD(updatePolicyKey, L"PausedFeatureStatus", 1)
- SetRegDWORD(updatePolicyKey, L"PausedQualityStatus", 1)
- SetRegString(updatePolicyKey, L"PausedQualityDate", endTime)
- SetRegString(updatePolicyKey, L"PausedFeatureDate", endTime)
- SetRegDWORD(L"SYSTEM\CurrentControlSet\Services\WaaSMedicSvc", L"Start", 4)
// 5. НОВІ ОПЕРАЦІЇ В RemovePause():
- DeleteRegValue(L"PauseUpdatesStartTime")
- SetRegDWORD(updatePolicyKey, L"PausedFeatureStatus", 0)
- SetRegDWORD(updatePolicyKey, L"PausedQualityStatus", 0)
- DeleteRegValue(updatePolicyKey, L"PausedQualityDate")
- DeleteRegValue(updatePolicyKey, L"PausedFeatureDate")
- SetRegDWORD(L"SYSTEM\CurrentControlSet\Services\WaaSMedicSvc", L"Start", 3)
⚙️ Технічні деталі
Compiler: LLVM-MinGW 20250910 (LLVM 21.1.1) - UCRT
Targets: x86_64-w64-windows-gnu, i686-w64-windows-gnu, aarch64-w64-windows-gnu
v1.3.17
🚀 Release v1.3.17 — "ARM64 & UCRT Era"
First native ARM64 support + Full UCRT compatibility. Built with LLVM-MinGW 20250910 (LLVM 21.1.1).
✅ Added
ARM64 Support: First-ever native build for Windows on ARM devices (Snapdragon X Elite, Surface Pro X, etc.).
UCRT Runtime Builds: All architectures (x86, x64, ARM64) now ship with both msvcrt and ucrt runtime variants.
One-Click Build Script: New build-release.bat automates compilation of all 9 binaries with proper folder structure.
🐛 Fixed
C2102 "lvalue required" Error: Fixed button hit-testing by storing GetButtonRect() result in a local variable before taking its address. (No more fighting the compiler over temporary objects!)
Missing Icons in x86/ARM64: Icons now embed correctly in all architectures by recompiling resources with --target=... for each platform. (No architecture left behind — even ARM64 gets its shiny icon now.)
Linker Error "undefined symbol: WinMain": Switched from wWinMain to WinMain(LPSTR) for MinGW compatibility.
Sure, we could’ve forced wWinMain with linker flags… but why fight the toolchain when a tiny change brings peace? 🕊️ (Also: aesthetic consistency.)
🔒 Enhanced Windows Update Lockdown
Added new registry keys to fully disable Windows Update:
SYSTEM\CurrentControlSet\Services\uhssvc → Start=4 (Disable Update Health Service)
SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate → DisableWindowsUpdateAccess=1
SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU → NoAutoUpdate=1, UseWUServer=1
SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching → SearchOrderConfig=0
⚙️ Technical Details
Compiler: LLVM-MinGW 20250910 (LLVM 21.1.1)
Targets: x86_64-w64-windows-gnu, i686-w64-windows-gnu, aarch64-w64-windows-gnu
v1.0.5
2025-07-26 – v1.0.5
Important :
Update pauser switched from 4750 to 100 years bcoz that more stable :D
New features :
Added inset and height parameters for every panel
– DrawCard, DrawButton and DrawStatusPanel now accept:
• inset – inner padding (px) on all sides;
• height – exact element height (px).
Example: DrawCard(hdc, rect, 20, 50);
UI improvements
All elements share the same 8 px corner-radius and shadow.
Border color unified under BORDER_COLOR.
Button hover effect: smooth 6 px grow on mouse-over.
Technical changes
Removed GetButtonRect(); coordinates now hard-coded in PaintWindow.
Raised WINDOW_HEIGHT to 250 px for better layout.
All drawing functions refactored to use HRGN + FillRgn/FrameRgn.
v1.0.1
Fixed :
Correct window scaling on high-DPI monitors.
Previously the UI elements scaled properly, but the window’s physical size remained fixed at 465 × 240 px, causing the content to look oversized.
The window now calculates its size via MulDiv(base_size, DPI, 96) before creation, ensuring the correct physical pixel dimensions on any DPI setting.
v1.0.0
🪟 Windows Update Pauser – Release
🧩 Architectures
| Platform | File | Note |
|---|---|---|
| 🖥 x64 | WindowsUpdatePauser_x64.exe |
Supports Windows 10/11 (64-bit) |
| 💻 x86 | WindowsUpdatePauser_x86.exe |
Supports Windows 10/11 (32-bit) |
| 📱 ARM | ARM64 build coming soon |
🔐 Run as administrator is required
📝 What's New
- 🌓 Dark-mode interface
- ⏸ Pause Windows Updates until the year 4750
▶️ One-click resume support- 📜 Visual status indicator
- 💡 Automatically opens
ms-settings:windowsupdate
⚠️ Important Notes
- Compatible only with Windows 10 / 11
- Modifies the registry, use with caution
- Creating a system restore point is recommended before applying