📦 WinProgramSuite — Complete Windows Package Management System

 

Latest Update: 10 July 2026 | WinUpdate startup fix
This changelog covers WinProgramManager and WinUpdate, the components of WinProgramSuite.
For automatic update features, see WinUpdate documentation.

WinProgramSuite Version 2026.07.10.16

WinUpdate startup elevation fix (10 July 2026):

  • WinUpdate no longer requests UAC at startup: Because the executable is named WinUpdate.exe, Windows' Installer Detection heuristic automatically demanded administrator elevation at launch. Windows silently blocks elevation-requiring apps from the per-user Startup folder, so the app never started with Windows and never appeared in the system tray.
  • Embedded application manifest (asInvoker): Added winupdate.manifest (referenced from winupdate.rc) declaring requestedExecutionLevel level="asInvoker". This disables the heuristic, so WinUpdate now launches at normal privilege from the Startup shortcut and appears in the system tray from Windows startup.
  • Elevation only when installing: The single UAC prompt now appears only when you press Update now, elevating winget_helper.exe for the duration of the actual installation — exactly where administrator rights are required.

 

WinProgramSuite Version 2026.03.26.07

Bug fixes & cleanup (26 March 2026):

  • WinUpdate — Norwegian cancel button fix: The skip/unskip confirmation dialog showed “OK” instead of “Avbryt” for the cancel button in the Norwegian (Bokmål) locale. Fixed btn_cancel in nb_NO.txt.
  • WinProgramManager — removed first-run DB migration: The runtime code that moved WinProgramManager.db from the install folder to C:\ProgramData\WinProgramManager\ ran without administrator rights, causing an error message on first launch. The migration code has been removed from db_path_utils.h, main.cpp, updater_gui.cpp, and updater_main.cpp. The installer now places the database directly in the correct location.

 

WinProgramManager Version 2026.02.21.07

Shared Database Location (21 February 2026):

  • Centralized Database Storage: Database now stored in C:\ProgramData\WinProgramManager\WinProgramManager.db instead of per-user installation directory
  • Multi-User Support: All users on the system now share the same package database and metadata, ensuring consistency across user accounts
  • Reduced Disk Usage: Eliminates duplicate database copies for each user, saving disk space on multi-user systems
  • Automatic Migration: Application automatically creates the ProgramData directory and migrates to the new location on first run
  • System-Wide Installation: Better alignment with Windows best practices for application data shared across all users

 

WinProgramManager Version 2026.02.19.10 — Update 1

Complete i18n & Settings Scheduler (19 February 2026):

  • Complete Settings Internationalization: All 15 settings dialog strings now fully translated to English, Norwegian, and Swedish - settings_btn, settings_title, settings_run_updater_btn, settings_scheduler_enable, settings_scheduler_interval_days_label, settings_scheduler_custom_days_label, settings_scheduler_first_run_label, settings_scheduler_run_if_fail_label, settings_use_button, settings_ok_button, settings_cancel_button, settings_working_message, settings_days_out_of_range, settings_days_invalid_integer, settings_failed_launch_updater
  • Norwegian Display: Settings dialog shows "Innstillinger", "Aktiver planlagte oppdateringer", "Intervall (dager):", "Tidspunkt på dagen:", "Bruk", "OK", "Avbryt"
  • Swedish Display: Settings dialog shows "Inställningar", "Aktivera schemalagda uppdateringar", "Intervall (dagar):", "Tidpunkt på dagen:", "Använd", "OK", "Avbryt"
  • Universal Task Scheduler Parsing: Task scheduler output now parsed language-independently, extracting day intervals (1-365) regardless of Windows display language (English, Norwegian, Chinese, Japanese, Russian, etc.)
  • Pattern-Based Extraction: Parser uses intelligent number extraction with date/time filtering - works with "Every 5 day(s)", "hver 5 dag", "每 5 天", etc.
  • Checkbox State Fix: Settings dialog checkbox correctly reflects scheduler state by checking intervalDays > 0 instead of multiple fallback conditions
  • Custom Days Validation: Input field now validates integer-only input with range checking (1-365 days) and clear localized error messages
  • Extended Interval Support: Custom intervals up to 365 days for annual/semi-annual update schedules (previously limited to 30 days)
  • Script Timeout Protection: restore_missing_packages.ps1 now has 15-second timeout for winget queries to prevent indefinite hanging on malformed package IDs
  • Input Quality: Trims whitespace, validates whole numbers only, rejects decimals/text/special characters

 

WinProgramManager Version 2026.02.11.01 — Update 19

Stability & installer fixes (11 February 2026):

  • Installed filter: Made the Installed filter toggle instantaneous by loading package IDs from the local database (no blocking winget query)
  • Reinstall dialog: Fixed missing button text by restoring the `close` locale key and adjusting owner-drawn button rendering
  • Installer UI: Added an extra newline after the "querying winget" status message for improved readability
  • Focus handling: Main window is now brought to the front when the install/reinstall dialog closes
  • Database cleanup: Removed stale entries from `installed_apps` to correct incorrect installed counts

 

WinProgramManager Version 2026.02.09.01 — Update 18

Search Dialog Polish & Critical Fixes (9 February 2026):

    • Search Dialog Internationalization: Added 15 locale keys (search_dialog_title, search_in_categories, search_options, etc.) translated to English, Norwegian, and Swedish
    • Search Dialog Visual Overhaul: White background (RGB 255,255,255), 11pt Segoe UI font, owner-drawn buttons matching main window styling
    • Two-Column Layout: Reorganized radio buttons into efficient 50/50 split - left column (Case Insensitive, Contains, Use Regex, Search All), right column (Case Sensitive, Exact Match, Refine Previous Results)
    • Dialog Unit Conversion: Search dialog buttons properly sized at 60x14 DLU (≈88x30 pixels for 11pt font), matching main window button proportions

 

WinProgramManager Version 2026.02.13.01 — Update 20

First-run scheduler & configuration marker (13 February 2026):

    • First-run scheduler: On first run the app will create a weekly Task Scheduler job named WinProgramUpdaterWeekly that runs WinProgramUpdaterGUI.exe --hidden for automated weekly updates.
    • Configuration marker: A small INI is written to %APPDATA%\WinProgramManager\WinProgramManager.ini to mark first-run completion. The INI stores Settings/Language (default en_GB) and Settings/UpdaterTaskCreated (1 on success, 0 on failure).
    • One-time flow: If the INI is present the app will not try to re-create the scheduled task. Delete the INI to force the first-run logic again.
  • Installation Status Bug Fix: Fixed critical bug where installed apps showed "Install" instead of "Reinstall/Uninstall" in details dialog - now checks i.package_id column from LEFT JOIN instead of installed_version (which can be empty string)
  • Confirmation Dialog Improvements: Added white background, blue question mark icon (IDI_QUESTION), wider buttons (75 DLU ≈110px), proper button icons
  • Simplified Unicode Icons: Changed from emoji to standard Unicode - ▼ Install (down triangle), ⟲ Reinstall (circular arrow), ⨳ Uninstall (bold X), ✖ Cancel
  • Missing Locale Strings: Added confirm_install_title and confirm_install_msg to all language files (was causing blank confirmation dialogs for install action)
  • Button Width Adjustments: Main window buttons widened - Installed: 100→120px, Refresh: 180→220px to accommodate icons without text truncation
  • Complete Button Styling: All confirmation and app details dialog buttons now use RGB(10,57,129) base, RGB(25,95,210) hover, RGB(6,34,80) pressed colors with 19pt bold font
  • Code Consistency: WM_DRAWITEM handlers, button subclassing, and hover tracking now identical across main window, search dialog, confirmation dialog, and app details dialog

 

WinProgramManager Version 2026.02.08.02 — Update 17

Design/Layout/Look & Feel Complete (8 February 2026):

  • Custom Quit Dialog: Professional quit confirmation with custom-drawn question mark icon (IDI_QUESTION) replacing standard MessageBox
  • Blue Button Theme: Quit dialog Yes/No buttons match About button color (RGB 10,57,129) for consistent visual identity
  • Optimal Sizing: Compact 260x75 dialog with 50x18 buttons and 15pt bold font for perfect readability
  • Unified Button Implementation: App details buttons (Install/Reinstall/Uninstall/Close) now use identical GWLP_USERDATA hover tracking as About button
  • Consistent Color Scheme: Install (green RGB 40,180,40), Uninstall (red RGB 180,40,40), Reinstall/Close (blue RGB 10,57,129) with proper hover states
  • Focus Management: Description field no longer auto-selected on dialog open - focus set to Close button for better UX
  • Code Consistency: All dialogs now use same button subclassing pattern with per-button state tracking via GWLP_USERDATA
  • Professional Polish: System icon integration, proper mouse tracking (TME_LEAVE), and bold font usage across all dialogs
  • Design Milestone: Complete visual identity established - all dialogs share consistent white backgrounds, owner-drawn buttons, and professional styling

 

WinProgramManager Version 2026.02.08.01 — Update 16

Professional App Details Dialog (8 February 2026):

  • Modern Owner-Drawn Buttons: Custom-styled buttons with color themes - Install (green), Uninstall (red), Reinstall/Close (blue)
  • Interactive Hover Effects: Button subclassing with TrackMouseEvent for lighter colors on hover, providing visual feedback
  • Pure White Background: Consistent RGB(255,255,255) background matching spinner and main window styling
  • Complete Internationalization: All labels fully localized - Publisher, Version, Package ID, Source, Status, Description, Technical Information, Homepage, License, Installer Type, Architecture, Tags in 3 languages
  • Value String Localization: Status values (Installed/Not Installed), placeholder texts (Unknown, Not available, No tags, No description) translated
  • Fixed Close Button: Blue-themed Close button with proper localized text ("Close"/"Lukk"/"Stäng")
  • Improved User Experience: Description field no longer auto-selected on dialog open
  • Consistent Text Styling: Black text (RGB 0,0,0) on white backgrounds across all controls via WM_CTLCOLORSTATIC, WM_CTLCOLOREDIT, WM_CTLCOLORDLG
  • Locale System Extension: Added 19 new locale keys (app_details_title, publisher_label, version_label, etc.) with LoadLocale parsing

 

WinProgramManager Version 2026.02.07.08 — Update 15

Complete Internationalization & Quit System (7 February 2026):

  • Complete i18n Implementation: 90+ locale strings covering all UI elements, error messages, and dialogs in 3 languages
  • Professional Quit System: Quit confirmation with "Yes/No" buttons for all exit methods (X button, quit button, Ctrl+W)
  • Quit Button: Red-themed button at far left with translations: "Quit" (English), "Avslutt" (Norwegian), "Avsluta" (Swedish)
  • Ctrl+W Keyboard Shortcut: Windows accelerator table ensures Ctrl+W works globally regardless of focus
  • Smart Child Dialog Handling: Child dialogs (app details) close without confirmation, main window requires confirmation
  • Config File Persistence: Language preference saved to %APPDATA%\WinProgramManager\WinProgramManager.ini
  • UTF-8 Encoding Fix: Fixed locale file reading with MultiByteToWideChar (CP_UTF8) for proper Norwegian/Swedish characters
  • Button Internationalization: Search, End Search, and Installed buttons now fully translated (removed hardcoded strings)
  • Localized Error Messages: 15+ error/warning messages now available in all 3 languages
  • quit_handler Module: Centralized quit logic in quit_handler.cpp/.h for better code organization
  • Title Fix: Removed space from "WinProgram Manager" → "WinProgramManager" in spinner and dialogs
  • Norwegian Language Fix: Corrected "Behandler database" → "Behandler databasen" (definite form)

 

WinProgramManager Version 2026.02.07.08 — Update 14

Suite Version Alignment (7 February 2026):

  • Unified Versioning: WinProgramManager and WinUpdate now share version 2026.02.07.08 for suite consistency
  • WinUpdate Scanner Visibility: Scanner popup now follows main window when it gains focus (WM_ACTIVATE handler)
  • Improved User Experience: No need to minimize other apps to see scan progress - popup automatically appears on top
  • Suite Identity: All components display the same version number and publish date (07.02.2026)

 

Version 2026.01.19.10

New in this version (19 January 2026, 10:00 GMT+1):

  • Microsoft Store Source Agreement: Added --accept-source-agreements flag to all winget upgrade commands to automatically accept geographic region data requirements for msstore source
  • Non-Interactive winget Execution: Eliminated interactive prompts during automatic update checks by accepting source agreements in advance
  • Improved Reliability: All winget commands now execute without requiring user interaction for source agreements

 

WinUpdate Version 2026.01.11.18

New in this version (11 January 2026, 18:00 GMT+1):

  • Dialog Icon Consistency: All application dialogs now display the WinUpdate icon in the title bar for consistent branding
  • Color-Changing Download Indicator: Bouncing ball animation changes from blue (preparing/installing) to green (downloading) for clear visual feedback during package downloads
  • Error Message Formatting: Fixed text formatting in error summaries to ensure Norwegian and English text appear on separate lines
  • Main Window Restoration: Improved main window bring-to-front behavior after installation dialog closes

 

Version 2026.01.09

New in this version (09 January 2026, 18:00 GMT+1):

  • UI Alignment Refinement: Adjusted Log button vertical positioning for improved visual alignment with other buttons

 

Version 2026.01.08

New in this version (08 January 2026, 20:00 GMT+1):

  • Windows Defender False Positive Mitigation: Added security compiler flags (ASLR, DEP, high-entropy ASLR) to reduce false positive detections
  • Enhanced Executable Metadata: Comprehensive version information with company name, copyright, and product details embedded in executable
  • Fixed English Unskip Button: Corrected variable name display issue in English locale (en_GB.txt)
  • Descriptive Polling Interval Text: English and Norwegian dropdown now match Swedish clarity: "Scan for updates every X hours"
  • False Positive Submission Scripts: Added helper scripts for adding Windows Defender exclusions and submitting false positive reports to Microsoft
  • Comprehensive Security Documentation: Created DEFENDER_SOLUTIONS.md with detailed instructions for handling antivirus false positives
  • Installation Dialog Repair: Created winget_helper.exe that captures all winget output including progress bars, download percentages, and status information in real-time
  • Single UAC Elevation: One UAC prompt installs all selected packages via helper architecture (restored from previous working implementation)
  • Installation Progress Tracking: Progress bar updates from 0% to 100% as packages are processed, status text shows current package name
  • Installation Status Workflow: Clear status transitions: "Preparing..." → package names → "Installation complete!" with progress percentage
  • "System Updated" Dialog Fix: Now correctly shows when all available updates are skipped (counts non-skipped packages instead of total)
  • System Tray Visibility Fix: "Your system is updated" dialog now appears when window is visible, regardless of system tray mode
  • Version Update: Application version updated to 2026.01.08.08

 

Version 2026.01.07

New in this version (07 January 2026, 12:00 GMT+1):

  • Swedish Language Support: Complete Swedish (sv_SE) localization with 106 translation keys added to locale/sv_SE.txt
  • Three-Language Support: Application now supports English (GB), Norwegian (Bokmål), and Swedish with proper language selection in Config dialog
  • Natural Swedish Terminology: User-preferred Swedish terms: "Skippa/Oskippa" for Skip/Unskip, "Ladda om" for Refresh, "Avboka" for Cancel
  • UI Clarity Improvements: Changed Refresh button from "Uppdatera" to "Ladda om" in Swedish to differentiate from "Uppdatera nu" (Update Now) button
  • Descriptive Config Text: Expanded Swedish polling interval text from "Var 2e timme" to "Sök efter uppdateringar varje 2e timme" for better clarity
  • Unified Settings Architecture: Consolidated to single settings file (%APPDATA%\WinUpdate\wup_settings.ini) with proper [language] section handling
  • Full Locale Code Support: All components now handle full ISO locale codes (sv_SE, nb_NO, en_GB) instead of short codes
  • Centralized Translation Loading: Unified all translation loading to locale/ folder (was split between i18n/ and locale/)
  • Complete Translation Coverage: All dialogs, tooltips, buttons, and status messages now properly translated in all three languages
  • Settings File Cleanup: Removed obsolete wup_settings.txt from project root, all settings now in APPDATA location

 

Version 2026.01.04.A

New in this version (04 January 2026, 22:00 GMT+1):

  • Install Dialog with Animation: New modal dialog for package installation with animated progress indicator (1px moving dot, 1ms timer)
  • Select All Button: Fixed button functionality - changed from checkbox (ID 2001) to pushbutton (ID 2099) to avoid control conflicts
  • UAC Elevation with PowerShell: Package installation now uses PowerShell instead of batch files for single UAC prompt and cleaner output
  • Startup Shortcut Management: Automatic verification and correction of Windows startup shortcuts based on configuration mode
  • Startup Verification on Launch: Application checks startup shortcut matches configuration mode and fixes discrepancies automatically
  • Config Dialog Layout Improvements: Widened dialog to 600px with consistent 10px button spacing for better visual layout
  • "Add to systray now" Button Positioning: Moved button to bottom row alongside other buttons for cleaner UI
  • Mode-Specific Shortcut Handling: Mode 0 (Manual) removes shortcut, Mode 1 (Startup) creates with --hidden, Mode 2 (SysTray) creates with --systray
  • Install Dialog i18n: Added translations for "no_packages_selected" and "install_done" messages in English and Norwegian
  • Temporary File Cleanup: Guaranteed cleanup of installation output files in all execution paths
  • Done Button Sizing: Install dialog Done button now 150px wide positioned at H-70 for proper visibility
  • Apply/OK Button Consistency: Both buttons now use VerifyStartupShortcut() function for reliable shortcut management

 

Version 2026.01.04

New in this version (04 January 2026, 18:30 GMT+1):

  • System Tray Mode 2 Implementation: Complete system tray functionality with configurable automatic scanning
  • Three Configuration Modes: Manual mode (default), Hidden scan at startup, or System tray with periodic polling
  • Right-Click Context Menu: ⚡ Scan now!, 🪟 Open main window, ❌ Exit options with emoji icons
  • Dynamic Tooltip: Displays "WinUpdate - Next scan: HH:MM" showing the actual clock time of next scheduled scan
  • Smart Balloon Notifications: Shows update count when updates found, "You are updated!" only for manual scans (automatic scans are silent when no updates)
  • "Add to systray now" Button: Instantly adds app to system tray from config dialog (only visible when Mode 2 selected)
  • Automatic Startup Shortcuts: Mode 1 creates shortcut with --hidden parameter, Mode 2 with --systray parameter
  • Single Instance Handling: Starting app again activates existing window instead of creating duplicate instance
  • Window Hide to Tray: Clicking X in tray mode hides window instead of closing application
  • Tooltip Updates: Countdown refreshes every 60 seconds to keep time accurate
  • NIF_SHOWTIP Flag: Required for NOTIFYICON_VERSION_4 to properly display tooltips on Windows
  • closetray.exe Utility: Standalone CLI tool to cleanly close system tray instance

 

Version 2026.01.03

New in this version (03 January 2026, 12:00 GMT+1):

  • Config Dialog: Added configuration dialog for system tray settings (preparation for future tray integration)
  • Custom Tooltips: Implemented custom tooltip system for About button using same architecture as Skip column tooltips
  • Complete i18n System: Migrated from en_US/no to ISO-standard en_GB/nb_NO locale codes throughout the application
  • Full Translation Coverage: Added translations for all UI elements including Config dialog, tooltips, and status messages
  • Norwegian Localization Fixes: Fixed "Uskippe" prefix issue, corrected About button translation to "Om"
  • Button Spacing: Precise 2-pixel gap between Config and About buttons (Config at x=468, About at x=590)
  • Config Dialog UX: Checkbox enables/disables dropdown; status updates only after Apply/OK; Cancel properly discards changes

 

Version 2026.01.02

New in this version (02 January 2026, 10:30 GMT+1):

  • Fixed Application Freeze After Skip Confirmation: Changed synchronous SendMessageW calls to asynchronous PostMessageW to prevent deadlock
  • Fixed Unskip Dialog Freeze: Removed slow winget list call (30-second timeout) and replaced with in-memory parsing of cached winget output
  • Fixed Display Name Truncation: Resolved issue where skip dialog and unskip list showed abbreviated names like "VLC" instead of full names like "VLC media player"
  • Fixed INI Key Matching: Added whitespace trimming for INI keys to correctly match parsed package IDs that had trailing spaces
  • In-Memory Display Name Cache: Introduced g_id_to_displayname map with mutex protection to store full package names in memory
  • Optimized Unskip Dialog Performance: Now opens instantly by parsing in-memory data instead of spawning external processes
  • Enhanced Display Name Resolution: Cascading lookup strategy: memory cache → in-memory winget output → g_packages → prettified fallback

 

Version 2025.12.20

New in this version (20 December 2025, 15:00 GMT+1):

  • Core Functionality: Initial release with basic winget wrapper capabilities
  • Skip Package Updates: Ability to skip specific package versions
  • ListView Display: Shows available updates in a sortable list
  • Settings Persistence: Saves skipped packages to INI file in %APPDATA%\WinUpdate
  • Multi-Language Support: English and Norwegian translations via INI files
  • About Dialog: Displays version information and license details
  • Hyperlink Controls: Custom ListView subclassing for clickable skip links
  • Resource Management: Icon and resource file integration
  • Architecture: Built with C++ and Win32 API (native Windows application), CMake build system with MinGW GCC 15.2.0
  • Modular Code Structure: Separate files for parsing, logging, hyperlinks, dialogs
  • Thread Safety: Mutex-protected global state for thread-safe operations

Release status: Ready for publish — release will be performed tomorrow.

Committed 11 February 2026 — codebase prepared for publishing.