【发布时间】:2009-05-29 00:19:30
【问题描述】:
我正在开发一个需要记录和回放击键的程序。主进程作为服务运行,因此需要一个配置程序来记录击键。
当系统默认键盘布局是(比如说)英语,而用户当前的键盘布局是(比如说)德语时,就会出现问题。用户在配置界面中输入一个'ü'字符,该字符被及时记录和存储。
现在用户运行记事本并尝试播放击键,这是由服务的子项完成的。在将输入转换为传递给SendInput 时,我们调用VkKeyScan,然后告诉我们无法在此键盘上重现该字符(请记住默认键盘布局是英文)。
我真正想做的是同步服务的键盘布局和当前的前台应用程序,以便服务可以重现用户可以使用键盘的任何字符。 GetKeyboardLayout 仅适用于当前进程。这必须在 32 位和 64 位上运行,因此消息挂钩是...不是首选:)。
【问题讨论】: