none
[Windows 7]微软拼音输入法 MS pinyin 选字不检测VK(virtual key)code而是检测key char,导致键盘布局改变后无法使用 RRS feed

  • 问题

  • 我使用MSKLC(Microsoft Keyboard Layout Creator) 1.4创建了我自定义的键盘布局,并在相应的.klc文件里面修改了VK code,现在我的键盘布局能顺利在Windows 10的微软拼音输入法中使用。

    进入新公司后,我被迫用回Windows 7,然后我发现在Win 7中我无法正常使用VK code对应的键来选字和翻页,导致我工作效率全面下降……

    稍微解释下:在Windows编程规范里面,明确要求快捷键要绑定在VK code层面,而不是实体键,但Windows7的微软拼音输入法是违反这个规范的。

    Legacy User Interaction Features > Keyboard and Mouse Input > Keyboard Input > About Keyboard Input

    Scan Code

    The scan code is the value that the keyboard hardware generates when the user presses a key. It is a device-dependent value that identifies the key pressed, as opposed to the character represented by the key. An application typically ignores scan codes. Instead, it uses the device-independent virtual-key codes to interpret keystroke messages.

    但是这个问题在Windows10中修复了,所以这更确定了Win7中的行为是错误的。

    简单来说,我现在的数字键被安排到shift状态了,程序的错误导致我在Windows7里面必须按shift+数字键来选字,但这是错误的:Windows10中我就可以只按1所在的键就可以选字,因为它只检测VK code,而同一位置的键,不管key char是什么,vk code是一样的。

    希望修复。这是一个重大bug。




    2017年10月13日 8:28

全部回复

  • 另外一点不一致的是,在windows 7里面的微软拼音输入法无法检测dead key,就好像MSKLC里面的deadkey失效那样。比如同样是MSKLC里面生成的dll,尽管会警告á在中文中不存在,我在windows 10里面,即使我使用微软拼音输入法(那么输入法的环境设置为中文),使用altgr + ´ + a 还是可以顺利输出á,但是在win 7里面,按下altgr+´只能出来´´,必须切换到西班牙语键盘布局才能输入á。不知道是不是系统原因。


    2017年10月16日 7:25