以编程方式更改输入区域设置(键盘 - 左移+ alt + 1)键序列

时间:2010-07-08 17:13:58

标签: c++ layout input keyboard locale

在XP上,如果你去

control panel -> regional and language Options -> Languages Tab -> Details -> 

如果您正在使用多个键盘,请点击Key Settings。这些是我想要改变的设置。我想将其设置为DVORAK键盘为Left Alt + Shift + 1。我可以使用C ++,C#或其他什么。我已经知道如何加载键盘了:

HKL dvorakhkl = LoadKeyboardLayout(TEXT("00010409"), 0);

加载dvorak键盘。这将其设置为默认值:

SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, (PVOID)&dvorakhkl, 0);

另外,我可以更改所述对话框的顶部

  

“在输入语言之间切换”

UINT val = 1;//"1" = ALT+SHIFT, "2" = CTRL+SHIFT, and "3" = none.
System.ParametersInfo(SPI_SETLANGTOGGLE, 0, 0, val);

如果您能提供帮助,请告诉我。谢谢!

亚伦

1 个答案:

答案 0 :(得分:0)

默认情况下,所有程序都使用C local(因为我们所有的C语言程序都是我想的)

您可以使用适当的本地来填充流 请记住,在打开/使用它之前必须灌注流。在打开/使用流之后尝试将流注入其中将被忽略。

这意味着对于std :: cin和std :: cout,您可能应该在main()启动时立即执行此操作,以避免使用它们。

如果指定空条目,则在创建区域设置对象时,它将从环境中获取本地名称(即其中一个环境变量)。

请参阅:
http://www.cplusplus.com/reference/iostream/ios_base/imbue/