vc模仿按键(在线等,急) mfc程序,上面有个按钮单击事件是用来模拟在cmd.exe窗口中按下键盘上q键 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SendInput,如果是控制台程序,可以用WriteConsoleInput 楼上能不能就WriteConsoleInput按我说的写个示例 楼主试试这段代码,我以前用过#include "winable.h"…………………………INPUT input[2];//模拟按下Q键::ZeroMemory(input, sizeof(input)); input[0].type = input[1].type = INPUT_KEYBOARD;input[0].ki.wVk = input[1].ki.wVk = 81;//Q键的ASCII码 input[1].ki.dwFlags = KEYEVENTF_KEYUP; // THIS IS IMPORTANT::SendInput(2, input, sizeof(INPUT)); 楼上我要给dos窗口发送按键信息应该怎么写(不是本对话框窗口啊) 你试代码了吗,它是模拟键盘按下,不去管哪个窗口接收,只要控制台窗口有输入焦点就可以收到。执行代码前你可以先用SetFocus把焦点设到控制台窗口处 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模拟。 CRectTracker(橡皮筋),如何在桌面绘制 vc程序创建空文档失败 activex可能自定义消息吗 使用IStream的write方法 碰到的问题? vc2003 类编译出错,不知如何解决? 一个小经验,共享之 外包。人民币寻找精通VC做界面的高手。。 编译报错error C2064: term does not evaluate to a function。请各位大哥过个目 关于modem通讯 有谁在windows下编译stardic成功! 怎么对ActiveX控件进行数字签名 问一个入门级的问题关于MFC的输入框
…………………………
INPUT input[2];
//模拟按下Q键
::ZeroMemory(input, sizeof(input));
input[0].type = input[1].type = INPUT_KEYBOARD;
input[0].ki.wVk = input[1].ki.wVk = 81;//Q键的ASCII码
input[1].ki.dwFlags = KEYEVENTF_KEYUP; // THIS IS IMPORTANT
::SendInput(2, input, sizeof(INPUT));
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模拟。