读书人

vc模仿按键(,)

发布时间: 2012-01-22 22:38:43 作者: rapoo

vc模仿按键(在线等,急)
mfc程序,上面有个按钮单击事件是用来模拟在cmd.exe窗口中按下键盘上q键

[解决办法]
HWND m_hcmd=::FindWindow( "ConsoleWindowClass ",NULL);
if (!m_hcmd) return;
::SetForegroundWindow(m_hcmd);
::SetFocus(m_hcmd);
::SendMessage(m_hcmd,WM_SETFOCUS,0,0);
keybd_event(81,0,0,0);//81是q的虚拟码
[解决办法]
就我所知道模拟按键可以有以下方式
方案1:
keybd_event(key,MapVirtualKey(key,0),0,0);//key值使用按键的虚拟码
::Sleep(20);
keybd_event(key,MapVirtualKey(key,0),KEYEVENTF_KEYUP,0);
方案2:
INPUT input;
::ZeroMemory(&input, sizeof(input));
input.type = INPUT_KEYBOARD;
input.ki.wVk = key;
::SendInput(1, &input, sizeof(INPUT));
input.ki.dwFlags = KEYEVENTF_KEYUP; // THIS IS IMPORTANT
::SendInput(1, &input, sizeof(INPUT));
方案3:
使用SendMessage也可以达到一部分模拟按键的效果,只是不是很好用,而且有些特殊键好像也模拟不了,所以这里就不给出具体的代码了。

推荐使用keybd_event模拟。

读书人网 >VC/MFC

热点推荐