其次,如何为“扩展”键引起键盘事件?
解决方法KEYBDINPUT
结构有一个KEYEVENTF_EXTENDEDKEY标志来处理0xE0字节: If specifIEd,the scan code was preceded by a prefix byte that has the value 0xE0 (224).
尝试这样的事情:
input inputs[2];ZeroMemory(inputs,sizeof(inputs));inputs[0].type = input_KEYBOARD;inputs[0].ki.wScan = 0x1D;inputs[0].ki.DWFlags = KEYEVENTF_SCANCODE | KEYEVENTF_EXTENDEDKEY;copyMemory(&inputs[1],&inputs[0],sizeof(input));inputs[1].ki.DWFlags |= KEYEVENTF_KEYUP;sendinput(2,inputs,sizeof(input));
但是,我建议使用虚拟密钥而不是扫描代码:
input inputs[2];ZeroMemory(inputs,sizeof(inputs));inputs[0].type = input_KEYBOARD;inputs[0].ki.wVk = VK_CONTRol;inputs[0].ki.DWFlags = KEYEVENTF_EXTENDEDKEY;copyMemory(&inputs[1],如果您绝对需要扫描代码,至少要查看MapVirtualKey()
以将虚拟密钥转换为扫描代码:inputs[0].type = input_KEYBOARD;inputs[0].ki.wScan = MapVirtualKey(VK_RCONTRol,MAPVK_VK_TO_VSC);inputs[0].ki.DWFlags = KEYEVENTF_SCANCODE | KEYEVENTF_EXTENDEDKEY;总结以上是内存溢出为你收集整理的Winapi – 扩展键盘扫描码全部内容,希望文章能够帮你解决Winapi – 扩展键盘扫描码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)