如何使用 C# 更改单个键盘布局

Posted

技术标签:

【中文标题】如何使用 C# 更改单个键盘布局【英文标题】:How to change individual keyboard layouts using C# 【发布时间】:2014-01-14 18:22:24 【问题描述】:

我正在开发一个多语言应用程序,允许用户更改语言和键盘布局(通过组合框)。我能够成功更改应用程序的文化,但我无法更改单个键盘布局,例如对于英语(美国),我无法将布局从 QWERTY(默认)更改为 Dvorak - 左手等。请在这件事上帮助我。 非常感谢。 这是代码(例如英语),已经添加了导入等。

CultureInfo TypeOfLanguage = CultureInfo.CreateSpecificCulture("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = TypeOfLanguage;
InputLanguage l = InputLanguage.FromCulture(TypeOfLanguage);
InputLanguage.CurrentInputLanguage = l;

【问题讨论】:

没有人会说一种名为“德沃夏克”的语言。 InputLanguage 无法处理文化的多种布局,您需要 pinvoke。仅将一个进程的布局更改为 Dvorak 没有多大意义,请改用语言栏。 我知道这不是必需的,但这是项目的一部分。如果我不得不使用“pinvoke”,你能解释一下吗?我还阅读了一些关于 user32.dll 的内容,有什么想法吗? 【参考方案1】:

这对我有用

System.Globalization.CultureInfo TypeOfLanguage = new 
System.Globalization.CultureInfo("en-US");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);

【讨论】:

以上是关于如何使用 C# 更改单个键盘布局的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 中使用自动布局更改滚动视图内容大小

如何使用自动布局约束在单个屏幕中放置两个视图

更改系统语言c#的最佳方法

如何更改键盘按键---KeyTweak?

动态更改键盘布局

如何更改iOS自定义键盘的高度?