github BrianLima/UWPHook 2.15.RC
Complete rework of UWPHook

pre-release31 minutes ago

UWPHook should be stable again

Hi guys, after so long and so many problems, i really could not keep up to date with the Windows ecosystem and making sure the app would work reliably, Powershell went from a cool solution to a liability, .Net is way less fun and changed frontends so many times, there were some merged PR's that while helped some things, did not improve others... etc etc...

So, recently i was wondering if i could use some tools to bring the app up to date, and got really involved with @claude at my day job, snagged a personal license for my personal use, and went to town with it. No, i am not too proud, but this tools was coded a LONG time ago, and the code here did not represent who i am as a coder now. So, if you are against AI-assisted coding, the older versions will be there for you, and there are some other forks that fix some things, but not everything.

So, i need some testers and most importantly, feedback, i focused on fixing the current state of the app before bringing any new features, that will be for the future, and if i have any good new ideas.

FIY: The biggest changes are, that we removed Powershell as a dependency to find games, we reworked and reorganized the entire codebase so that models, views and functions are not so spaghetti-ish, added unit tests to most of the codebase, and moved the installer to Velopack, a simpler, open-source installer that puts the app in %appdata% directly.

List of all the fixes we brought to this version:

What changed in 2.15

The problems that probably brought you here

The app list loads again. No more “Error trying to get installed apps” or an empty list — app discovery now goes straight to Windows’ package manager, and UWPHook doesn’t run PowerShell at all anymore. (#141 #149 #155 #164 #171 #178 #181, also #132)
Games launch from Steam again, including when UWPHook sits in a folder with spaces in its path. “Value does not fall within the expected range” is gone. (#157 #160 #168)
Exporting no longer hangs or closes the app. (#166 #176, also #80 #143 #158)
Exporting again updates the shortcut you already have instead of creating a duplicate, so your artwork and playtime stay with it. Shortcuts made by other tools are never touched.
The settings window no longer crashes on Save. (#162)
No more “An item with the same key has already been added” when reading shortcuts.vdf. (#139)
Forza Motorsport and other games with localized names show up in the list. Thanks to @icavalheiro (PR #169).
Different games from the same publisher are no longer hidden as duplicates — Hollow Knight and Silksong, for example. Thanks to @RXA7 (PR #182).
Your settings survive updates, and the SteamGridDB key isn’t wiped on first run anymore. It’s now encrypted for your Windows user.
An invalid SteamGridDB key is no longer thrown away: UWPHook says once that it was rejected, skips artwork, and leaves the key in Settings.
Games with & or : in the name find their artwork.
Export uses the Steam install your client actually runs from, so a Steam moved to another drive gets the shortcuts.
Two games with the same name get different Steam app ids, so they stop overwriting each other’s artwork.
Export no longer reports success when it exported nothing.

New

Settings → “Remove UWPHook shortcuts”, which removes only what UWPHook created, after backing up shortcuts.vdf.
Pick which Steam accounts export and remove use, listed by account name. All of them by default. (#76)
The games list shows each app’s icon — the same image your Steam shortcut gets.
Exported games are added to Steam collections. The Steam client stopped reading the tags UWPHook wrote into shortcuts.vdf, so the setting is now “Add games to Steam collections” and writes to Steam’s real collections. UWPHook only ever adds: it never removes a game from a collection, never renames or deletes one, and backs the file up first.
A per-user installer that needs no administrator rights, plus ARM64 builds. The portable zip is still there.
Search no longer resets the list’s sort order, and there are “Select all/none” buttons and a “Show system apps” option.
A global error handler: unexpected errors go to application.log and show up in a message box instead of the app vanishing.

Under the hood

.NET 10, self-contained and single-file. No runtime to install.
Windows’ built-in Fluent look, following your system light/dark setting.
Games whose executable UWPHook can’t work out are listed instead of silently dropped, and playtime still works, because UWPHook watches every process belonging to the game’s package.
Moddable Xbox games installed under XboxGames are found and tracked.
When Steam is running, UWPHook asks before closing it, and starts it again when it’s done.
Only the 20 newest shortcuts.vdf backups per Steam account are kept. Backups made by 2.14 are never deleted.

Removed

The per-game language option. Windows only applies a display-language change after you sign out, so it never worked when launching a game. If an older version left your display language changed, set it back in Settings → Time & language.
The “Change resolution” option, which didn’t work on desktop Windows. It comes back in 3.0. (#124)
Upgrading from 2.14

⚠️ Don’t run the 2.14 uninstaller — not from its Start menu entry, not from Windows Settings → Apps — and don’t delete %AppData%\Briano\UWPHook. The 2.14 installer put the program inside that folder, which is where 2.15 keeps your settings, your shortcuts.vdf backups and the icons your Steam shortcuts point at. The old uninstaller deletes the whole thing.

Install 2.15, open it once (your settings are imported), then export your games again. This applies to everyone, installer or portable: until you do, shortcuts made by 2.14 keep pointing at the old UWPHook.exe path.

Full Changelog: 2.14.3...2.15.RC

Don't miss a new UWPHook release

NewReleases is sending notifications on new releases.