首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vc模仿按键(,)

2012-01-22 
vc模仿按键(在线等,急)mfc程序,上面有个按钮单击事件是用来模拟在cmd.exe窗口中按下键盘上q键[解决办法]HW

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模拟。

热点排行