在 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);
此外,我可以更改所述对话框的顶部
"Switch between Input Languages"
UINT val = 1;//"1" = ALT+SHIFT, "2" = CTRL+SHIFT, and "3" = none.
System.ParametersInfo(SPI_SETLANGTOGGLE, 0, 0, val);
如果你能帮上忙,请告诉我。谢谢!
亚伦
最佳答案
默认所有程序都使用 C local(因为我想我们都使用 C 方言编程)
您可以为流注入(inject)适当的本地信息。
请记住,您必须在打开/使用流之前灌输它。在打开/使用流后尝试注入(inject)流将被静默忽略。
这意味着对于 std::cin 和 std::cout 你应该在启动时立即在 main() 中执行它以避免它们被使用的可能性。
在创建区域设置对象时,如果指定空字符串,它将从环境中获取本地名称(即环境变量之一)。
参见:
http://www.cplusplus.com/reference/iostream/ios_base/imbue/
关于c++ - 以编程方式更改输入区域设置(键盘 - 左 shift+ alt + 1)键序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206229/