gpt4 book ai didi

c - 来自 VK_Code 的 ASCII 字符

转载 作者:太空狗 更新时间:2023-10-29 16:03:47 27 4
gpt4 key购买 nike

我有一个小型 WIN32 C 应用程序,我在其中使用 KBDLLHOOKSTRUCT结构体。此结构包含按下的键的 VK 代码。

我尝试将其转换为 ASCII 字符。为此,我使用函数 MapVirtualKey , 效果很好。

唯一的问题是,一个 VK 代码可以保留多个字符。示例:

在我的键盘(瑞士-德语)上存在键字符 .。如果我按 Shift+. 然后它会创建一个 :。 VK 代码是相同的。没问题,我还可以检查 Shift 是否被按下或 Caps Lock 是否被激活。

我唯一的问题是:如何获取字符“:”?我需要这样的功能:

GetKeyChar(vkCode, shift)

我需要这个来获得键盘的“正常”和“移动”值。我当然可以对此进行硬编码,但我不喜欢以这种方式进行。

最佳答案

问题是 KBDLLHOOKSTRUCT 没有您进行翻译所需的所有信息。每次按下某个键时,您都会收到一条消息。因此,对于 Shift+X,您会收到一条输入消息,指出按下了 Shift 键,另一条消息指出按下了“X”键。

您需要调用GetKeyboardState为了获得 Shift、Alt、Ctrl(可能还有其他)键的状态。然后调用ToAsciiExToUnicodeEx

关于c - 来自 VK_Code 的 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com