如何向指定端口发送信息

时间:2022-04-17 14:40:22
例如我需要模拟键盘输入,向键盘端口写入信息,这个怎么样操作;
或者
如何在MFC下有效地模拟出键盘的输入;
如果可能请给出部分详细代码,谢了

7 个解决方案

#1


keybd_event(BYTE bVk, 
  BYTE bScan, 
  DWORD dwFlags, 
  DWORD dwExtraInfo )

#2


keybd_event(VK_A, 0, 0, 0);//按下'A'

#3


我是想向指定窗口发送信息,
但是
我用  ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的

这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应

#4


就是用keybd_event啊,谁给你说的发消息啊

#5


不对不对~~
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;

#6


呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假

::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);

hWnd为接收键盘消息的窗体句柄

#7


引用 6 楼 biweilun 的回复:
呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假

 ::PostMessage(hWnd,WM_KEYDOWN,49,0);
 ::PostMessage(hWnd,WM_KEYUP,49,0);

 hWnd为接收键盘消息的窗体句柄


这个可以的.我一般都用SendMessage的,这个发送过去是直接执行的.而PostMessage是使用了一个消息堆栈
写魔兽键盘修改器都可以用SendMessage.即便是最小化,但是最大化后,确实能看到效果

#1


keybd_event(BYTE bVk, 
  BYTE bScan, 
  DWORD dwFlags, 
  DWORD dwExtraInfo )

#2


keybd_event(VK_A, 0, 0, 0);//按下'A'

#3


我是想向指定窗口发送信息,
但是
我用  ::PostMessage(info.hwnd,WM_KEYDOWN,49,0);//这个是写的程序以外的窗口
//如果发送到程序以内的窗口是可以的

这个将信息发送到指定窗口却没有相应,应该是发过去了但是没有执行,
比如我的目的地址是一款游戏的句柄
过去里面的任务却没有反应

#4


就是用keybd_event啊,谁给你说的发消息啊

#5


不对不对~~
keydb_event是给模拟键盘给当前窗口发送信息;
不能切出窗口后继续向原来指定窗口发送信息;

#6


呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假

::PostMessage(hWnd,WM_KEYDOWN,49,0);
::PostMessage(hWnd,WM_KEYUP,49,0);

hWnd为接收键盘消息的窗体句柄

#7


引用 6 楼 biweilun 的回复:
呵呵,SetActiveWindow将这个窗体激活后,就能继续keydb_event了。keydb_event只能向前台窗体发送这个不假

 ::PostMessage(hWnd,WM_KEYDOWN,49,0);
 ::PostMessage(hWnd,WM_KEYUP,49,0);

 hWnd为接收键盘消息的窗体句柄


这个可以的.我一般都用SendMessage的,这个发送过去是直接执行的.而PostMessage是使用了一个消息堆栈
写魔兽键盘修改器都可以用SendMessage.即便是最小化,但是最大化后,确实能看到效果