fix(windows): add non-admin user install with different base keyboard - #16528
Open
rc-swag wants to merge 8 commits into
Open
Conversation
The updates all the apis so that the basekeyboardid or klid can be passed in as an argument. This in needed so that elevated process required to compile the keyboard has the call users keyboard base id.
Also rebuild kmcomapi_TLB.pas
Also update the command line to use FBaseKeyboardID instead of FQuery.
rc-swag
marked this pull request as ready for review
September 8, 2026 01:40
Contributor
Test Specs
Test Prerequisites
Test Results
|
mcdurdin
approved these changes
Sep 11, 2026
| with TKPInstallKeyboard.Create(Context) do | ||
| try | ||
| Execute(FFileName, '', [], nil, Force); | ||
| Execute(FFileName, '', [], nil, Force, 0); |
Member
There was a problem hiding this comment.
Suggested change
| Execute(FFileName, '', [], nil, Force, 0); | |
| Execute(FFileName, '', [], nil, Force, 0); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes: #15152
This change if for installing keyboards when the basekeyboard is different the admin user used for elevation. The keyboards are compiled against the correct basekeyboard for the calling user.
This has required a update to the kmcom interface for the Install interfaces for keyboards and packages to include the basekkeyboard KLID as an argument.
Build-bot: release:windows
User Testing
TEST_INSTALL_CURRENT_USER_NON_ADMIN_DIFFERENT_BASE
C:\ProgramData\Keyman\Keyman Engine\Keyboard\_Package\sil_ipathere should now be asil_ipa-????0407-d.kmxandsil_ipa-????0407.kmxTEST_INSTALL_CURRENT_USER_ADMIN_DIFFERENT_BASE
After completing the steps in
TEST_INSTALL_CURRENT_USER_NON_ADMIN_DIFFERENT_BASE1.Login into Windows with and account that is a "admin" user and does have "Administrator" rights.
C:\ProgramData\Keyman\Keyman Engine\Keyboard\_Package\sil_euro_latinsil_euro_latin-????0405-d.kmxandsil_euro_latin-????0405.kmxTEST_INSTALL_CURRENT_USER_NON_ADMIN_DIFFERENT_BASE_VIA_FILE
C:\ProgramData\Keyman\Keyman Engine\Keyboard\_Package\gff_amharicthere should now be agff_ahmharic-????0407-d.kmxandgff_ahmharic-????0407.kmx