无法从虚拟键代码转换为 unicode
Can't convert from virtual key code to unicode
我需要向directinput应用程序注入文本。我正在使用SendInput,但是使用虚拟键代码不能与directinput一起工作,所以我需要使用Unicode。现在,我不想注入的键被注册在一个文件中作为虚拟键代码,我需要将它们实时转换为Unicode。
return1 = ToUnicode(vk, MapVirtualKey(vk, MAPVK_VK_TO_VSC), NULL, buffer, 1, 0);
这是我的代码字符串。Vk是int类型中的虚拟键,而buffer是一个wchar_t数组,大1个单位。我不能只使用简单的wchar_t,因为它不能与ToUnicode一起工作。然而,这个函数每次只返回0,这意味着函数不能转换键。为了记录,我使用标准的键,如"wasd",没有特殊字符。如果有人能弄清楚为什么会发生这种情况,我真的希望得到一些帮助。
谢谢你的考虑!
编辑:也,它是方便的只是打击我的懒惰,写一些旧的开关和打破转换值?如。
wchar_t unicode;
switch (vk)
case '0x30':
unicode = '48';
//ecc...
它说"keys"数组是可选的,但除非我传入一个键,否则我也会得到一个零结果。也许它们只是意味着你可以选择让它工作或不工作?
std::vector<BYTE> keys(256, 0);
int sc = MapVirtualKey(vk, MAPVK_VK_TO_VSC);
return1 = ToUnicode(vk, sc, keys.data(), buffer, 1, 0);
所以尝试(或&keys[0]
代替keys.data()
,如果你不使用c++ 11)。
相关文章:
- 将ANSI C字符串转换为UNICODE
- 删除unicode def后,无法将QString转换为TCHAR
- 如何将整数转换为 unicode 字符
- 如何将小数NCR转换为Unicode字符(C )
- Ubuntu上的库ICU不想从Unicode转换为Windows-1251
- 如何在Unicode/UCS CodePoint和UTF16替代对之间转换
- Unicode 字符问题/转换参数
- 将ISO 8859-X转换为Unicode的方法
- 如何在Visual C 中的BSTR和32位Unicode字符串之间进行转换
- 在 unicode 中将 WCHAR 数组转换为 std::string?
- ANSI到Unicode或向后转换:怎么可能?
- 从ASCII到Unicode字符代码的转换(FreeType2)
- 将 unicode 字符串转换为字符串
- 如何在Django中将unicode转换为C++std::string
- 字符串转换:MBCS <-> UNICODE,内有多个 \0
- 在 UNICODE 应用程序中将 char * 转换为 catch 块内的 CString
- 如何在c++中将unicode代码点转换为utf-8
- 如何将无符号十六进制值转换为相应的unicode字符,这些字符应该使用c++写入文件
- C++将ASII转义的unicode字符串转换为utf8字符串
- 将 STL unicode 字符串转换为 wxString 会给出空字符串