Releases: Layellie/StandbyAndTimer
v2.0.1 - P0 fixes + update integrity
What's new
Bug fixes
- Memory monitor: removed an AVRT thread-characteristic call that was being lost across every
awaiton the 1 sPeriodicTimerloop, leaking the handle without any scheduling benefit. - Standby purge: the process token opened by
OpenProcessTokeninElevatePrivilegeis now closed; previously every auto-purge leaked a kernel handle. - Settings persistence:
StandbyLimitMb/FreeLimitMbwrites are now debounced (500 ms). A four-digit value no longer triggers four registry writes. - Game Mode PID tracking: replaced
HashSet<int>withConcurrentDictionary<int, byte>so overlapping monitor ticks and UIClear()calls cannot corrupt the set. - Standby calculation: the gauge now sums Normal-Priority + Reserve + Core standby buckets. Reading only the Reserve bucket (as before) under-reported standby by an order of magnitude on most systems.
Game-mode effectiveness
- Each game process now receives
SetProcessInformation(ProcessPowerThrottling)withIGNORE_TIMER_RESOLUTION+EXECUTION_SPEEDopt-out, so Windows 11 honours the 0.5 ms timer even when the game loses foreground focus.
Update integrity
- The in-app updater now streams a SHA-256 hash while downloading and verifies it against either the
SHA256:line in the release body or a*.sha256/SHA256SUMSasset on the release. On mismatch the file is deleted and the install is aborted.
Hardening
SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS)is called at startup so a DLL planted next to the admin-elevated exe cannot be loaded.
Repo hygiene
- Added MIT
LICENSE(repo was previously license-less). - Added
.github/dependabot.ymlfor weekly NuGet + GitHub Actions dependency PRs. - Removed the duplicate
ARCHITECTURE_UPDATE.mddocument.
Integrity
SHA256: d3c26b1baf5f266f924dfc9e4c6d6c16bebb24ab63fd60bf635095cdfd46f553
Installer: StandbyAndTimer_Setup_2.0.1.exe (72.2 MB, self-contained .NET 10)
Requirements: Windows 10 21H1+ or Windows 11, x64, Administrator privileges
v2.0.0 - WPF on .NET 10
Complete rewrite on WPF (.NET 10).
A full architectural rewrite of the original WinForms version. Same core feature set, new foundation: MVVM, dependency injection, and self-contained single-file deployment.
Highlights
- WPF on .NET 10 with
CommunityToolkit.MvvmandMicrosoft.Extensions.DependencyInjection - Layered architecture — all Win32 P/Invoke isolated in
Services/Native/NativeMethods.cs - In-app update checker with one-click download & install from GitHub Releases
- Dark / Light themes and English / Turkish localization
- System tray with single-instance guard and live status tooltip
- AutoStart via Task Scheduler (
schtasks /RL HIGHEST) — survives reboot, runs elevated - Self-contained installer (~72 MB) — no separate .NET runtime install required
Features
- Timer Resolution lock at 0.5 ms (
NtSetTimerResolution) - Standby memory list purge — manual and automatic (
NtSetSystemInformation) - Game Mode — High CPU priority + full affinity on configured game processes
- AVRT audio task class enrolment
Installation
- Download
StandbyAndTimer_Setup_2.0.0.exebelow - Run the installer (UAC will prompt — Administrator privileges required)
- Launch from the Start Menu
Requirements: Windows 10 21H1+ or Windows 11, x64, Administrator privileges.
Upgrade from v1.0.0
The WinForms and WPF versions are independent applications — install side-by-side or uninstall the old one first. Settings are not migrated automatically.
v1.0.0 - WinForms (archived)
Original WinForms version (archived).
This is the first public release of StandbyAndTimer, built on Windows Forms (.NET Framework). The codebase is preserved on the winforms-archive branch for reference.
The current actively maintained version is the WPF rewrite — see v2.0.0.
Features
- Timer Resolution lock at 0.5 ms (
NtSetTimerResolution) - Standby memory list purge (
NtSetSystemInformation) - Background engine
Notes
No installer is attached to this release. To run the WinForms version, check out the winforms-archive branch and build from source with Visual Studio.