手动安装使用 MSKLC 创建的自定义键盘布局 (dll)

手动安装使用 MSKLC 创建的自定义键盘布局 (dll)

我使用以下方法创建了自定义键盘布局Microsoft 键盘布局创建器(MSKLC) 工具并生成一个“构建包”,以便轻松安装。键盘布局的安装需要管理员权限。它基本上将生成的.DLL文件(构建结果的一部分)复制到C:\windows\system32Windows 注册表中并将其注册。

就我而言,我想在权限有限的系统上使用相同的键盘布局。但是我可以修改 Windows 注册表。

因此我尝试了以下操作(在具有管理员权限的电脑上):

  1. 复制custom.dllC:\custom.dll
  2. 将路径从现有(已注册)的键盘布局更改为..\..\custom.dll;例如:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000100cLayout File = ..\..\custom.dll
  3. 在系统设置中选择修改了其相关 DLL 文件路径的键盘布局(在本例中为“瑞士法语”布局)。

成功了!失败了。(一开始我以为成功了,但我肯定搞混了。)似乎文件必须位于其中,C:\windows\system32而不能使用相对路径引用。

基本上我想使用自定义键盘布局(DLL),但我无法使用生成的部署包,因为我没有权限写入文件C:\windows\system32。但我可以修改 Windows 注册表。有没有办法让我继续加载此布局?

我的操作系统:Windows 10 x64

答案1

微软已于 2012 年发布了针对旧版 Windows 的更新,以验证键盘布局是否包含在内%Windir%\System32,而不是位于其他地方并由相对路径引用。

看 ”MS12-034:Windows XP 和 Windows Server 2003 中 CVE-2012-0181 的安全更新说明:2012 年 5 月 8 日

此更新如何进行?

此更新将枚举计算机上注册的所有键盘布局文件,然后验证它们是否都位于 %Windir%\System32 文件夹中。

微软希望确保键盘布局文件位于正确的目录中。如果可能的话,那将是安全漏洞。我找不到有关 Windows 10 的任何具体信息,但可以假设同样的逻辑也适用于此。

回答我最初的问题:如果不能将 DLL 文件复制到,就无法注册键盘布局%Windir%\System32

相关内容