现在有一段时间我正在使用win7,它会经常混淆我的键盘语言,我必须远程添加3种键盘语言,应用,然后删除它们.所以,我想知道是否有办法自动通过.bat文件(添加3种特定的键盘语言,然后立即删除它们).但是,我对.bat命令几乎一无所知,所以有人知道这是否可以通过.bat文件,如果可以,我应该使用什么命令?
乔治,提前谢谢你.
小智 6
这是可能的.
http://msdn.microsoft.com/en-us/goglobal/bb964650#eyb
命令行示例:
control intl.cpl,, /f:"%CD%\AddKeyboardLanguage.xml"
Run Code Online (Sandbox Code Playgroud)
AddKeyboardLanguage.xml示例:
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList>
<gs:InputPreferences>
<!--ch-Google--><gs:InputLanguageID Action="add" ID="0804:E0200804"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
Run Code Online (Sandbox Code Playgroud)
RemoveKeyboardLanguage.xml示例:
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/></gs:UserList>
<gs:InputPreferences>
<!--ch-Google--><gs:InputLanguageID Action="remove" ID="0804:E0200804"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
Run Code Online (Sandbox Code Playgroud)
我也遇到了同样的问题 -en-US是自动添加的,我必须添加en-US然后删除它才能摆脱布局。即使使用批处理文件,我发现您不能仅仅删除它,您必须首先添加布局(即使它显示在键盘布局列表中)才能像手动删除它一样删除它。
因此,该Remove_en-US.xml文件首先添加布局,然后将其删除:
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<!--User List-->
<gs:UserList>
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences-->
<gs:InputPreferences>
<!--add en-US keyboard input-->
<gs:InputLanguageID Action="add" ID="0409:00000409"/>
<!--remove en-US keyboard input-->
<gs:InputLanguageID Action="remove" ID="0409:00000409"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
Run Code Online (Sandbox Code Playgroud)
Remove_en-US.bat:
control intl.cpl,, /f:"%CD%\Add_en-US.xml"
Run Code Online (Sandbox Code Playgroud)
这里,0409是locale ID和00000409是键盘布局值。有关列表,locale ID:keyboard layout value请参阅https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825682(v=win.10)。
键盘语言存储在注册表中,HKEY_CURRENT_USER\Keyboard Layout您可以REG.EXE在批处理文件中使用它来添加/修改/删除注册表项。REG.EXE不支持远程更改HKEY_CURRENT_USER注册表项,因此必须从相关计算机运行该文件。但我们可能不必这样做。这就是我要做的。当您的计算机正常工作时,CMD通过单击开始按钮并CMD在运行框中键入内容转到提示。根据CMD提示,输入:
REG QUERY "HKCU\Keyboard Layout" /s
Run Code Online (Sandbox Code Playgroud)
这将向您展示一切正常时注册表项应该是什么样子。现在拍摄快照并将其存储在文件中,输入:
REG EXPORT "HKCU\Keyboard Layout" KeyboardLayout.reg
Run Code Online (Sandbox Code Playgroud)
CMD这将在您提示的任何目录中创建 KeyboardLayout.reg 文件。我不确定为什么您必须添加 3 种特定语言,然后删除它们才能恢复工作状态,但我有一种感觉,只需将注册表设置回其工作时的状态即可解决问题。下次发生这种情况时,远程浏览到 KeyboardLayout.reg 文件的位置并双击它。它会告诉您密钥已更新并单击“确定”。看看是否能解决问题。如果没有,请重新启动该计算机,然后查看是否有。如果仍然不起作用,请发回评论,我会告诉你下一步我会做什么。
| 归档时间: |
|
| 查看次数: |
11871 次 |
| 最近记录: |