是否可以使用C#更改Windows OS键盘布局(例如,从azerty更改为querty?(对于整个操作系统,而不仅仅是当前应用程序的进程)
我必须使用PInvoke还是有更简单的API /方式来使用它?
这是一个电话:
[DllImport("user32.dll")]
static extern IntPtr LoadKeyboardLayout(string pwszKLID, uint Flags);
样本:
要添加和激活美国英语Dvorak布局,请使用“ 00010409”。
LoadKeyboardLayout("00010409", 1)
MSDN:
在Windows 8中开始:已为整个系统。如果当前进程执行此功能,则此功能无效不拥有具有键盘焦点的窗口。
含义:您的窗口必须在焦点上,否则该功能无效。
MSDN中的完整文档: