C++ 如何从虚拟密钥代码中获取密钥文本?
如何从虚拟密钥代码中获取密钥文本C++ 如何从虚拟密钥代码中获取密钥文本?,c++,winapi,C++,Winapi,如何从虚拟密钥代码中获取密钥文本 KBDLLHOOKSTRUCT * kbhook = (KBDLLHOOKSTRUCT *) lParam; cout << kbhook->vkCode <<endl; KBDLLHOOKSTRUCT*kbhook=(KBDLLHOOKSTRUCT*)LPRAM; cout-vkCodecout-vkCode)阅读时,我会尝试这样做: wchar_t buff[10]; BYTE keyState[256] = {0};
KBDLLHOOKSTRUCT * kbhook = (KBDLLHOOKSTRUCT *) lParam;
cout << kbhook->vkCode <<endl;
KBDLLHOOKSTRUCT*kbhook=(KBDLLHOOKSTRUCT*)LPRAM;
cout-vkCodecout-vkCode)阅读时,我会尝试这样做:
wchar_t buff[10];
BYTE keyState[256] = {0};
int result = ToUnicodeEx(
kbhook->vkCode,
kbhook->scanCode,
keyState,
buff,
_countof(buff),
0,
NULL);
成功后,buff
应包含Unicode字符。答案的可能副本就在您自己发布的链接中。。。只需使用ToUnicodeEx
和谷歌作为示例就可以开始了。我得到@grassPro:不要编写wchar\u t[]
到cout
。你需要wchar\u t[]
的wcout
。啊..那是个错误!但该程序无法区分大写字母和小写字母,无法分辨特殊字符,无法分辨是否按下了shift键等。。怎么做???@grassPro:您可能需要使用keyState
数组(并使用LoadKeyboardLayout
功能)。也许可以在该数组中设置shift键按下状态等。您将buff
=10的大小保持为10的原因是什么?{0}
表示什么?
wchar_t buff[10];
BYTE keyState[256] = {0};
int result = ToUnicodeEx(
kbhook->vkCode,
kbhook->scanCode,
keyState,
buff,
_countof(buff),
0,
NULL);