如何在.net中全局更改系统输入语言

时间:2011-09-03 05:56:42

标签: .net dvorak input-language

我通常在输入qwerty和dvorak之间切换,Windows中最大的不便之一是尽管有一个热键可以在输入语言之间切换,但它只会更改具有焦点的窗口的输入语言。

我想创建一个脚本来为我更改输入语言,并在按热键时运行脚本。我一直在尝试不同的方法来做到这一点。我需要这个的原因是因为我喜欢在工作中一直输入dvorak,但是如果其他人需要使用我的系统,则无法将系统默认设置为dvorak。脚本完成后,我可以将其上传以供所有人下载和使用。

我在网上找到的一个解决方案是使用SystemParametersInfo函数。但是,我无法找到足够的文档来从MSDN库中获取此功能。在阅读了其他无法使用此功能的人发布的帖子之后,我停止了搜索,有人说这需要系统重启。

编辑 - 正在进行的尝试失败,因为看起来此方法仅适用于当前窗口(虽然我能够更改输入语言,但它似乎没有任何效果)。 < / p>

我找到的另一个(稍微有希望的)解决方案是设置InputLanguage.CurrentInputLanguage。然而,关于它的设置用法的文件很少(更多只是为了获得)。我找到的在线指南讨论了使用InputLanguage.FromCulture()来设置语言。即InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("ZH-CN"));但是US-Dvorak似乎不在支持的文化列表中。

有没有人有任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了这个程序:效果很好,并提供了源代码。在尝试开发其他程序来“修复”Windows糟糕的功能时,我可能会将其用作资源。

下载:http://www.tomseddon.plus.com/kbswitch/

如果您使用的是Windows 7,则可以将其拖出屏幕右下角的“弹出框”,以便图标位于任务栏中,靠近系统时间。我没有尝试重启,我把程序放在启动文件夹中,所以它应该可以工作。