类似的问题已经被问,所以我不会浪费时间来重新解释它,已有的讨论,可以在这里找到: ToAscii/ToUnicode in a keyboard hook destroys dead keys如何在不破坏密钥支持的情况下使用ToUnicode?
但是我张贴新的问题的原因是,我似乎遇到了“解决方案”,但我不太清楚如何实施它。
本博客文章似乎提出了一个解决方案的ToUnicode杀死键支持问题: http://www.siao2.com/2005/01/19/355870.aspx
但是我不知道如何实现建议的解决方案。一个正确的方向推动将不胜感激。
要清楚,我指的是部分是这样的:
有两种方法来解决此问题:
1)您可以保持通话ToUnicode用相同的信息,直到它被清除,然后再拨打一次,将状态恢复到以前没有输入任何内容的状态,或者
2)您可以提前加载所有键盘信息,然后当他们键入信息时可以在您自己的信息缓存中查找按键的意思,而不必迟到调用API河
我不太清楚如何做这些事情(键盘和国际化远不是我的强项),所以任何帮助将不胜感激。
感谢
但修复win32 API将是一个危险的先例。想想如果他们开始*那条路径,他们在他们之前的工作量。 – jalf 2010-04-09 08:59:01
@jalf:我不确定这是否讽刺。 Windows的i18n/l10n正在积极开发中。对于这个特殊的位,他们可能不需要.Net代码(键盘处理是相当低级的),所以修复Win32 API是一个合理的建议,可能是唯一的方案。 – MSalters 2010-04-09 10:47:14
代码示例的任何机会将我推向正确的方向?我很尴尬地说我还有点迷路。呃,我非常讨厌这个键盘的东西。谢谢。 – RaptorFactor 2010-04-09 15:28:43