`
sjk2013
  • 浏览: 2166233 次
文章分类
社区版块
存档分类
最新评论

VC++6.0 QQ自动发起远程协助(超简单10多行代码)

 
阅读更多

这几天要在公司远程家里的电脑,家里的电脑是使用路由器拨号的。所以远程桌面遇到了那个经典的问题IP IP IP 是动态的怎么办??????,

查了点资料又花生壳的等。。映射动态IP的试下好像不太管用。公司网速不快远程最理想的当属QQ,可是家里没人谁按远程协助按钮?(有人也涉及到隐私问题呵呵)网查了一推自动QQ远程协助软件 不是木马就是不好用!算了作为一名程序袁还是自己动手吧!!网查了一推资料和问其他VC高手终于搞定,写的比较简陋,窗口名称和鼠标点击位置都是写死的,就是为了快而简单(20行代码呵呵),,能达到要求就OK了(就我自己用呵呵)。。


原理:就是监听QQ聊天窗体的显示,用FindWindow("类名","窗口标题");得到窗口句柄判断 要监视的窗体状态 。然后模拟鼠标点击 “远程协助按钮”

代码:1.首先来个定时器每3秒检查一次(回调函数要先声明后使用) 环境VC++6.0

	 void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime );//声明回调函数
	 SetTimer(1,3000,(TIMERPROC)TimerProc);//用回调函数处理,此时对话框的消息处理函数不再处理。3s

2.接下来检查聊天窗口状态,模拟点击相应的位置。这里涉及到取窗口的 类名和窗口标题 (想我这样对VC不是很熟的,可能不知道怎么弄。用WindowSpy就OK了),经测试QQ的聊天窗口的类名貌似都一样的,标题就是QQ好友的备注名称。坐标可用鼠标模拟软件获取。。

/*
* 定时器回调函数
*/
void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime )
{
	struct HWND__ * m_pWnd=FindWindow("TXGuiFoundation","金色阳光");//根据(类名,窗口标题)查找窗体返回句柄(窗口标题就是QQ好友的备注姓名)
     if(m_pWnd)
	 {   
		 if(!::IsIconic(m_pWnd)){//如果窗口不是最小化状态
			//Sleep(3000);//等待3秒,待聊天窗口初始化完毕(以免点击到其他位置)
	        //AfxMessageBox("找到窗体了,并且可见状态");
			mouseLeftClick(620,256);//单击远程按钮(位置信息可以用鼠标模拟点击软件获取)
	        mouseLeftClick(915,193);//单击最小化按钮 让窗口最小化 以免  重复点击
		 }
	   
	 }
}
3.模拟鼠标点击

/*
* 鼠标左键单击 坐标x,y
*/
void mouseLeftClick(int x,int y){
     SetCursorPos(x, y);// 位置
	 //单击
 	 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
	 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}

OK ,现在按照你设置好的QQ好友 ,用好友QQ登陆给你发个抖动窗口(让聊天窗口显示出来),接着你的电脑就会自动向好友发远程请求了。

用两个QQ就可以远程控制其他电脑了再也不用担心什么公网,动态IP 路由端口映射等麻烦的问题了呵呵。。。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics