C ++在keybd_event()上发送带有WM_KEYDOWN的虚拟键

时间:2015-03-19 23:42:02

标签: c++ keyboard

我希望我的程序使用WM_KEYDOWN发送第三方虚拟密钥VK_ALOGIN或0xf7。

所以我尝试以下方法:

keybd_event(0xf7, 0, 0, 0);

但是接收此键盘消息的程序,它只接收VK_ALOGIN,而不接收WM_KEYDOWN。那么我可以用WM_KEYDOWN发送0xf7吗?

请注意,VK_ALOGIN不是Microsoft虚拟密钥。

1 个答案:

答案 0 :(得分:0)

Receiver可能正在寻找keydown,以及密钥。尝试发送两个。

keybd_event( VK_ALOGIN, 0, 0, 0 );
keybd_event( VK_ALOGIN, 0, KEYEVENTF_KEYUP, 0 );

keybd_event( VK_ALOGIN, 0, KEYEVENTF_EXTENDEDKEY, 0 );
keybd_event( VK_ALOGIN, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );

编辑:我删除了对SendInput的引用,因为现在我认为它与问题无关,我不确定我是否正确使用SendInput。