Add support for apps with a higher integrity level.
A lightweight and easy-to-use password manager
Brought to you by:
dreichl
Hello,
KeePass (up to v2.60) has a medium integrity level and is therefore unable to interact with applications that have a higher integrity level.
Three prerequisites must be met to enable this:
1. UIAccess must be enabled in the manifest.
2. The app must be digitally signed.
3. The app must be launched from a secure folder such as C:\Program Files (including subdirectories).
KeePass is already signed and stored in a secure folder by default; it simply lacks the UIAccess flag.
Thank you for reading, and best regards.
I've experimented with this (on an up-to-date Windows 11 25H2 system). Setting
uiAccess="true"does indeed allow KeePass to perform auto-type into applications running with a high integrity level. Unfortunately, we also get massive focus problems.Here's a KeePass build with
uiAccess="true"(based on KeePass 2.60, I've added an application manifest using the latest version of Visual Studio 2022 and changeduiAccessfromfalsetotrue; no other changes):https://keepass.info/filepool/KeePass_260128_UIA.zip
When running this build from a non-secure directory, everything works as expected (without the ability to perform auto-type into high integrity applications). If you run it from
%ProgramFiles%, auto-type works, but the focus problems occur. Examples:Without a solution (in KeePass or in Windows) for these problems, setting
uiAccess="true"is unacceptable. I've tried adding some more elements in the application manifest, but this didn't have any effect on the problems.If you or anyone else reading this has any idea how the focus problems could be resolved, please let me know.
Thanks and best regards,
Dominik
PS: If you run KeePass as administrator, performing auto-type into high integrity applications works fine and no focus problems occur.
This is not a Windows issue, the problem lies elsewhere.
I will try using a modified side-by-side manifest with KeePass. I'll let you know if I discover anything interesting.
However I've just created a test app (Delphi) that mimics KeePass, and it runs smoothly with UIAccess enabled.
This demo just sends 1234567890 to any window, including elevated ones.
https://www.swisstransfer.com/d/d4766634-500d-403d-9677-ff31281d7e51
ps: after running the modified KeePass, I had to reboot. The mess remains even after quitting it.