以编程方式更改键盘布局

时间:2016-12-12 08:35:07

标签: powershell

我使用de-CH作为标准键盘布局,在瑞士公司环境中工作de-DE,同时使用de-DE键盘。

我可以手动将键盘设置更改为首选Set-WinUserLanguageList -LanguageList DE-DE - 布局,将其设置为标准并指定短片。

然而:不知何故,我的设置在任意时间后消失(可能与管理员运行的更新有关),所以我必须每隔几天重复一次。

This建议在Win 8中使用Powershell更改键盘布局的简单方法:

PS C:\Users\b036081> Set-WinUserLanguageList -LanguageList DE-DE Set-WinUserLanguageList : The term 'Set-WinUserLanguageList' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + Set-WinUserLanguageList -LanguageList DE-DE + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Set-WinUserLanguageList:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

可悲的是,我使用Win 7.因此,我得到以下错误消息,作为一个Powershell-dummy,我将其解释为一个简单的声明,即cmdlet在Win 7中不存在:

config/initializers/elasticsearch.rb

现在,Powershell还有另一种比较简单的方式吗?甚至在C ++,C#,Batch,VB ......

非常感谢!

6 个答案:

答案 0 :(得分:1)

我认为您可以在注册表中更改它。

下面有一个注册表项:

HKU:\。默认\键盘布局\预载\

轻松将其更改为国家/地区代码00000407 - 注册表中的de-de,可以解决您的问题。

但首先你必须创建一个新的PS-Drive,从登记处“挂载”“HKEY_USERS”。

$psdrive = New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS

Set-ItemProperty -Path "HKU:\.DEFAULT\Keyboard Layout\Preload\" -Name 1 -Value 00000407

$psdrive | Remove-PSDrive

答案 1 :(得分:1)

您可以通过.NET类轻松更改当前输入语言,如下所示:

Add-Type -AssemblyName 'System.Windows.Forms'
[System.Windows.Forms.InputLanguage]::CurrentInputLanguage = [System.Windows.Forms.InputLanguage]::InstalledInputLanguages | ? { $_.Culture -eq 'ru-RU' }

答案 2 :(得分:0)

使用此命令

powershell -command "Set-WinUserLanguageList -Force 'en-US'"

powershell -command "Set-WinUserLanguageList -Force 'fr-FR'"

答案 3 :(得分:0)

虽然我的系统会自动重置为de-CH布局,如果我将其他任何语言设置为默认语言,我仍然可以使用ALT + SHIFT + {{1}循环到我喜欢的键盘布局只要我不尝试删除未使用的1条目。

Powershell方法似乎与我的系统无关。

答案 4 :(得分:0)

在 PowerShell 窗口中运行以下命令:

Set-WinDefaultInputMethodOverride -InputTip "0409:00000409"

此命令将默认输入法覆盖设置为英语(美国)- 美国。

Another Input Profiles (Input Locales) here

答案 5 :(得分:0)

选项 1:WinDefaultInputMethodOverride

您可以覆盖默认输入法。 InputTip语言标识符键盘标识符的组合。 (Default Input Profiles (Input Locales) in Windows)

Set-WinDefaultInputMethodOverride -InputTip '0409:00000409'

选项 2:更新注册表

为此,您必须被允许更改注册表。

Set-ItemProperty -Path 'Registry::HKEY_USERS\.DEFAULT\Keyboard Layout\Preload\' -Name 1 -Value 00010409

标识符

可以在 Keyboard Identifiers and Input Method Editors for Windows 上找到 键盘标识符 的列表。在注册表中,您可以找到系统上可用的那些。 语言标识符可以在Available languages for Windows

上找到
Get-ChildItem -Path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts\'