远程监控按键问题

ahui535320611 2013-01-07 07:15:40
大家好 我要做的就是类似qq的远程协助 在自己的电脑可以通过自己的键盘来控制远程计算机的键盘
我的问题如下:
我是用MFC 基于对话框做的 对于按键控制我是通过聊天室模式做的 在自己电脑向对方电脑发送文本信息时用的PreTranslateMessage(MSG* pMsg)函数来截取按键消息 在对方电脑接收到字符时响应如下代码 即可在对方电脑产生类似的按键
(int)str;
SHORT ks = VkKeyScan(str);
BYTE key = ks & 0xFF;
keybd_event(key,0,0,0);
keybd_event(key,0,KEYEVENTF_KEYUP,0);

可是在响应ESC与enter键以及F1、F2、F3......等键是出现问题
1、对于ESC与ENTER键直接对自己的对话框响应 直接将对话框关闭 这个如何让自己的对话框不关闭 同时还能将他们的键码发送到对面 同时对面计算机可以响应此按键
2、对于F1 F2 F3 F4 F5......等按键 对面响应出来的按键竟然分别是p Q R S T ......

比较着急 希望大家看到的帮忙顶顶 会的帮忙解答一下 谢谢
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahui535320611 2013-01-08
  • 打赏
  • 举报
回复
引用 4 楼 hurryboylqs 的回复:
远程协助可以看下VNC源码,发送自己组织数据包发送过去即可
请问你知道为何F1 F2等键会响应成P Q 等
ahui535320611 2013-01-08
  • 打赏
  • 举报
回复
引用 2 楼 CometNet 的回复:
过滤ESC、ENTER等按键: C/C++ code?123456789101112BOOL CMainDialog::PreTranslateMessage(MSG* pMsg){ if(pMsg->message==WM_KEYDOWN || pMsg->message==WM_KEYUP){ int nVirtKey = (int)pMsg->……
请问你知道为何F1 F2等键会响应成P Q 等
jimette 2013-01-08
  • 打赏
  • 举报
回复
hurryboylqs 2013-01-07
  • 打赏
  • 举报
回复
远程协助可以看下VNC源码,发送自己组织数据包发送过去即可
ahui535320611 2013-01-07
  • 打赏
  • 举报
回复
引用 2 楼 CometNet 的回复:
过滤ESC、ENTER等按键: C/C++ code?123456789101112BOOL CMainDialog::PreTranslateMessage(MSG* pMsg){ if(pMsg->message==WM_KEYDOWN || pMsg->message==WM_KEYUP){ int nVirtKey = (int)pMsg->……
过滤掉了 但是重点是我怎么能将这两个按键的按键值发送到对方计算机啊
邓学彬 2013-01-07
  • 打赏
  • 举报
回复
过滤ESC、ENTER等按键:
BOOL CMainDialog::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg->message==WM_KEYDOWN || pMsg->message==WM_KEYUP){
		int nVirtKey = (int)pMsg->wParam; // virtual-key code 
		if(nVirtKey==VK_RETURN || nVirtKey==VK_ESCAPE){
			if(::GetAncestor(pMsg->hwnd,GA_ROOT)==m_hWnd){
				return TRUE;
			}
		}
	}	
	return CDialog::PreTranslateMessage(pMsg);
}
ahui535320611 2013-01-07
  • 打赏
  • 举报
回复
谢谢大家 懂的帮帮俺

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧