【发布时间】:2013-08-25 05:01:31
【问题描述】:
我遇到了一个对我来说没有意义的可重现错误。希望有人更多地了解 Windows 下键盘输入的内部结构(我使用的是 Windows 7),并可以为我指出如何解决它的正确方向。就目前而言,我真的不知道应该从哪里开始寻找。
我的应用程序使用MouseKeyboardActivityMonitor 库创建了一个全局键盘挂钩。这对我来说工作得很好,但我很快收到了使用不同键盘输入语言的人的错误报告。当他们写带有重音符号的字母时,e.g. ë 和 ê,它们分别显示为 ¨¨e 和 ^^e。 This bug is also reported on the library's website,但还没有解决。
为了尝试重现该错误,我在现有的“英语(美国)”旁边设置了另一种输入语言“荷兰语(比利时)”。玩弄了一番后,我发现了以下内容:
安装钩子的应用有焦点且语言设置为“英语(美国)”时不会出现该错误。在任何其他应用程序(例如记事本)中书写并使用“荷兰语(比利时)”来书写特殊字符都可以。当安装钩子的应用程序具有焦点并且语言设置为“荷兰语(比利时)”时,确实会发生该错误。
我正在寻找有关两者之间关系的任何线索。也许我需要在键盘挂钩库中引入一些额外的检查? source code of the keyboard hook is available on line。
【问题讨论】:
标签: windows winapi keyboard input-language