想模拟如下功能
当我安下键盘任何一个键值的时候 例如 '1'
则程序自动模拟键盘'1' 一直按,如果我按别的 就模拟别的按键..多谢大家
当我安下键盘任何一个键值的时候 例如 '1'
则程序自动模拟键盘'1' 一直按,如果我按别的 就模拟别的按键..多谢大家
解决方案 »
- VC++中的注释规范
- 如何让Dialog Bar位于Tool Bar的上头(Y坐标)
- 求基于MFC的视频作品
- 很简单的问题(在线等....)
- 关于基于对话框的数据库问题,希望能解决一下
- 开发基于WinFax.dll的传真程序~
- 本人想学vc++,不知道看什么书,我已经熟练的掌握delphi,sqlserver,vfp,asp,熟悉oop编程!
- DirectDraw问题,建立LPDIRECTDRAWSURFACE7总是失败!!!
- 设置了REPORT的LISTCTRL怎样改变表头的颜色,如果派生一个CHEADERCTRL,那么怎样与LISTCTRL想关联?那里有原代码可一下栽?
- 怎样设定CListCtrl中每一行的高度
- 如何在点按钮后设置按钮为无效?怎么获得一个不大于Num的随机正整数?
- com的本质是什么呀?是不是以dll的形式体现出来呀?还以什么形式体现呀?现在说com技术面临淘汰是指什么呀?为何要淘汰?
类似的帖子有很多,搜一下先
目前问题如下:
我是把按键信息从dll中返回后,然后模拟keybord_event还是直接在dll中模拟。
如果返回的。好像dll不支持全局变量。
当我程序运行的时候,我如何向当前活动的启动窗体Post一个键盘键值消息,并且当前活动的窗体上出现我post的结果
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
发送消息即可,各参数请参照MSDN等相关资料。
CWnd *hd = GetActiveWindow();
HWND aa = hd->m_hWnd;
::PostMessage(aa, WM_KEYDOWN, 1, 0);
发送一个'1' 我用的是记事本,可是里面不打印出一个'1' ...
keybd_event( nKey, MapVirtualKey(nKey,0), 0, 0);
keybd_event( nKey, MapVirtualKey(nKey,0), KEYEVENTF_KEYUP, 0);
我测试了下,如果用
keybd_event( nKey, MapVirtualKey(nKey,0), 0, 0);
keybd_event( nKey, MapVirtualKey(nKey,0), KEYEVENTF_KEYUP, 0);
键盘进入死循环。一直触发钩子
CWnd *hd = GetActiveWindow();
HWND aa = hd->m_hWnd;
::PostMessage(aa, WM_KEYDOWN, 1, 0);
发送一个'1' 应该是
::PostMessage(aa, WM_KEYDOWN, '1', 0);
并且最好不用GetActiveWindow,而用GetForegroundWindow