不同语言设置下的GetRawInputData嗅探字符问题
创始人
2025-01-10 00:01:06
0

针对不同语言设置下使用GetRawInputData函数进行嗅探字符的问题,可以采用以下解决方案。

步骤1:获取当前输入法语言标识

在使用GetRawInputData函数之前,需要先获取当前输入法的语言标识。

//获取当前输入法语言标识 UINT uSize = 0; GetKeyboardLayoutList(0, nullptr); HKL *pHkl = new HKL[uSize]; GetKeyboardLayoutList(uSize, pHkl); LANGID langId = LOWORD(pHkl[0]);

步骤2:设置格式化字符

根据获取的语言标识,设置对应的格式化字符。

//根据语言标识设置格式化字符 char szFormat[16] = {0}; switch (langId) { case LANG_CHINESE: { sprintf_s(szFormat, "%lc", L'%'); break; } case LANG_ENGLISH: { sprintf_s(szFormat, "%c", '%'); break; } default: { //其他语言设置使用默认格式化字符 sprintf_s(szFormat, "%c", '%'); break; } }

步骤3:使用格式化字符处理数据

在获取到原始输入数据后,使用上述格式化字符对数据进行处理。

//使用格式化字符处理数据 char szText[256] = {0}; RAWINPUT ri; UINT uSize = sizeof(RAWINPUT); GetRawInputData(hRawInput, RID_INPUT, &ri, &uSize, sizeof(RAWINPUTHEADER)); if (ri.header.dwType == RIM_TYPEKEYBOARD) { UINT uVKey = ri.data.keyboard.VKey; UINT uScanCode = ri.data.keyboard.MakeCode; UINT uFlags = ri.data.keyboard.Flags; if (uFlags & RI_KEY_E0) { uScanCode |= 0xE000; } sprintf_s(szText, 256, "%s%d-%d-%d", szFormat, uVKey, uScanCode

相关内容

热门资讯

三分钟机巧!德州机器人代打脚本... 三分钟机巧!德州机器人代打脚本(透视)其实真的有辅助透视(哔哩哔哩)1、全新机制【德州机器人代打脚本...
三分钟积累!wepoker数据... 三分钟积累!wepoker数据分析(透视)果然真的是有辅助神器(哔哩哔哩)1、wepoker数据分析...
一分钟方案!we-poker辅... 一分钟方案!we-poker辅助器(透视)好像是真的有辅助教程(哔哩哔哩)1、we-poker辅助器...
8分钟诀窍!wepoker辅助... 您好,wepoker辅助器有哪些功能这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275...
四分钟法子!wpk透视是真的假... 四分钟法子!wpk透视是真的假的(透视)都是是有辅助神器(哔哩哔哩)wpk透视是真的假的辅助器是一种...
第七分钟总结!hhpoker有... 第七分钟总结!hhpoker有后台操作吗(透视)果然是有辅助教程(哔哩哔哩)1、该软件可以轻松地帮助...
第六分钟手段!黑侠破解wepo... 第六分钟手段!黑侠破解wepoker(透视)真是是有辅助辅助(哔哩哔哩)1、打开软件启动之后找到中间...
3分钟讲义!wepoker分析... 3分钟讲义!wepoker分析(透视)真是真的是有辅助教程(哔哩哔哩)1、这是跨平台的wepoker...
第1分钟妙招!poker wo... 第1分钟妙招!poker world辅助(透视)本来真的是有辅助开挂(哔哩哔哩)1、下载好poker...
第十分钟方式!wepokerp... 第十分钟方式!wepokerplus到底是挂了吗(透视)切实存在有辅助脚本(哔哩哔哩)1、操作简单,...