Skip to content

Releases: EXLOUD/Windows-Update-Pauser

v1.4.1

28 Sep 21:34
9443bfb

Choose a tag to compare

📝 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 with Start = 4 and zeroed FailureActions)
    • 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 FailureActions are restored for WaaSMedicSvc to 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.
  • 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.dpiScale for 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 EnumWindows for 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

LLVM-MinGW

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

23 Sep 18:59
ce596b9

Choose a tag to compare

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

20 Sep 21:59
67acc98

Choose a tag to compare

// 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

14 Sep 22:58
4e8877c

Choose a tag to compare

🚀 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

26 Jul 19:14
c0a483b

Choose a tag to compare

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

21 Jul 19:50
a3127c4

Choose a tag to compare

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

17 Jul 21:49
688091c

Choose a tag to compare

🪟 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 ⚠️ Not supported yet 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