我正在编写一个应用程序,它的行为会根据所选的键盘布局而有所不同。我一直在搜索,我看到每当应用程序的布局发生更改时,应用程序都会收到一条消息(WM_INPUTLANGCHANGE,本质上是在布局更改时它具有焦点)。
但我希望在键盘布局发生变化时得到通知,不仅是该应用程序具有焦点;例如,如果更改发生在您使用 Word 工作时。
任何人都知道这是否可能?也许挂钩一些函数调用或内存中的进程(我在说甚至不知道这是否可能)?
我正在编写一个应用程序,它的行为会根据所选的键盘布局而有所不同。我一直在搜索,我看到每当应用程序的布局发生更改时,应用程序都会收到一条消息(WM_INPUTLANGCHANGE,本质上是在布局更改时它具有焦点)。
但我希望在键盘布局发生变化时得到通知,不仅是该应用程序具有焦点;例如,如果更改发生在您使用 Word 工作时。
任何人都知道这是否可能?也许挂钩一些函数调用或内存中的进程(我在说甚至不知道这是否可能)?
迈克尔·卡普兰(Michael Kaplan)在博客中谈到了 2006 年被破坏的这些信息:
http://www.siao2.com/2006/05/16/598980.aspx
他继续讨论如何直接从文本服务框架获取通知,并提供了一个到已损坏的 MSDN 的链接。我相信这个是兼容的:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms629032.aspx
他提到的示例代码可以在该页面上的链接中找到。
这会在全球范围内奏效吗?我对文本服务框架不够熟悉,无法知道,但这是一个开始寻找的好地方。