或者
如何在MFC下有效地模拟出键盘的输入;
如果可能请给出部分详细代码,谢了
7 个解决方案
#1
keybd_event(BYTE bVk,
BYTE bScan,
DWORD dwFlags,
DWORD dwExtraInfo )
BYTE bScan,
DWORD dwFlags,
DWORD dwExtraInfo )
#2
keybd_event(VK_A, 0, 0, 0);//按下'A'
#3
我是想向指定窗口发送信息,
但是
我用 ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的
这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应
但是
我用 ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的
这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应
#4
就是用keybd_event啊,谁给你说的发消息啊
#5
不对不对~~
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;
#6
呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假
::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);
hWnd为接收键盘消息的窗体句柄
::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);
hWnd为接收键盘消息的窗体句柄
#7
这个可以的.我一般都用SendMessage的,这个发送过去是直接执行的.而PostMessage是使用了一个消息堆栈
写魔兽键盘修改器都可以用SendMessage.即便是最小化,但是最大化后,确实能看到效果
#1
keybd_event(BYTE bVk,
BYTE bScan,
DWORD dwFlags,
DWORD dwExtraInfo )
BYTE bScan,
DWORD dwFlags,
DWORD dwExtraInfo )
#2
keybd_event(VK_A, 0, 0, 0);//按下'A'
#3
我是想向指定窗口发送信息,
但是
我用 ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的
这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应
但是
我用 ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的
这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应
#4
就是用keybd_event啊,谁给你说的发消息啊
#5
不对不对~~
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;
#6
呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假
::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);
hWnd为接收键盘消息的窗体句柄
::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);
hWnd为接收键盘消息的窗体句柄
#7
这个可以的.我一般都用SendMessage的,这个发送过去是直接执行的.而PostMessage是使用了一个消息堆栈
写魔兽键盘修改器都可以用SendMessage.即便是最小化,但是最大化后,确实能看到效果