VK_Code中的ASCII字符
发布时间:2020-12-16 09:36:58 所属栏目:百科 来源:网络整理
导读:我有一个小型WIN32 C-Application,其中我使用 KBDLLHOOKSTRUCT 结构.此结构包含按下的键的VK代码. 我尝试将其转换为ASCII字符.为此,我使用功能 MapVirtualKey ,它运作良好. 唯一的问题是,一个VK代码可以保留多个字符. 例: 在我的键盘上(瑞士 – 德国)存在关
我有一个小型WIN32 C-Application,其中我使用
KBDLLHOOKSTRUCT 结构.此结构包含按下的键的VK代码.
我尝试将其转换为ASCII字符.为此,我使用功能 唯一的问题是,一个VK代码可以保留多个字符. 在我的键盘上(瑞士 – 德国)存在关键字符..如果我按Shift键.然后它创建一个:. VK-Code是一样的.这没问题,我也可以检查是否按下了Shift或者是否激活了Caps Lock. 我唯一的问题是:我如何获得char’:’? GetKeyChar(vkCode,shift) 我需要这个来获得键盘的“正常”和“移位”值.当然我可以硬编码,但我不喜欢这样做. 解决方法
问题是KBDLLHOOKSTRUCT没有为了进行翻译而需要的所有信息.每按一次键,您都会收到一条消息.因此对于Shift X,您将收到一条输入消息,说明已按下Shift键,另一条消息表示已按下“X”键.
您需要调用GetKeyboardState才能获得Shift,Alt,Ctrl(和其他)键的状态.然后调用ToAsciiEx或ToUnicodeEx. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |