WINAPIs keybd_event()在某些程序无法识别

问题描述 投票:0回答:1

我做了一个NES控制器的接口与atxmega,它通过串口发送键。问题在于,读取输入,并相应地将keybd_events程序。

if(szBuff[0] & BTN_LEFT) {
    keybd_event(VkKeyScan('j'), 0, 0, 0);
    keybd_event(VkKeyScan('j'), 0, KEYEVENTF_KEYUP, 0);
}

问题是,它未能得到公认的一个NES模拟器“J”时,虽然它在说一个浏览器这样做。

winapi
1个回答
0
投票

很难回答这个没有你解释任天堂模拟器是如何工作的。但是你必须提供虚拟键码VkKeyScan()。这是 'J',而不是 'J'。只要Shift键没有被按下时,Windows会翻译,要产生一个“J”一个WM_CHAR消息。

需要注意的是keybd_event()需要一个虚拟键和扫描代码。你是通过扫描码作为虚拟键。固定:

 keybd_event('J', VkKeyScan('J'), 0, 0);
© www.soinside.com 2019 - 2024. All rights reserved.