【发布时间】:2010-09-20 18:25:15
【问题描述】:
我正在用 C# 编写一个在后台运行的程序,它允许用户使用热键在活动窗口中切换键盘布局。 (Windows 仅支持 CTRL+SHIFT 和 ALT+SHIFT)
我正在使用 RegisterHotKey 来捕捉热键,它工作正常。
问题是我找不到任何 API 来更改焦点窗口的键盘布局。
ActivateKeyboardLayout 和 LoadKeyboardLayout 只能更改调用线程的键盘布局。
有谁知道如何更改不同线程的键盘布局(语言栏的方式)?
【问题讨论】:
-
当您使用 Windows 内置热键切换语言时,它不会影响不同的线程,是吗?
-
每线程键盘布局切换?与系统范围的布局切换相反?用和弦做点什么?
-
@drachenstern:没有系统范围的键盘布局切换;活动键盘布局是每个 UI 线程的状态。我正在尝试替换 Alt+Shift,这样我就不会意外按下它,因此不能选择和弦(如果我明白你的意思的话)。
-
我想你知道我在和弦上的意思。我只是认为键盘布局是从系统继承的东西,并且很好奇你为什么要在每个线程中覆盖它。为什么不在线程上使用与系统上相同的布局?这就是我很好奇的地方。我想只是想了解更多看待世界的方式。
标签: c# .net winapi keyboard-layout registerhotkey