CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

我做远程控制的软件,怎么才能得到特定的qq消息内容

楼主t_jl1979(骑士)2005-04-02 19:40:55 在 VC/MFC / 网络编程 提问

假定qq的好友只有一个人  
  1.来了一条短信,如何用外挂,得到具体内容.  
  2.如何用外挂给这个人发条短信.  
  大家给点意见,谢谢  
  问题点数:100、回复次数:5Top

1 楼keiy()回复于 2005-04-02 19:50:16 得分 30

我的思路是先用FindWindow找到QQ的消息窗口,然后用SendMessage写窗口的数据  
  如何使用两个函数,看我以前回的  
  http://community.csdn.net/Expert/topic/3839/3839216.xml?temp=.6392938Top

2 楼df8327(DF)回复于 2005-04-02 22:22:02 得分 0

关注Top

3 楼alec626(月吻长河Blog:spaces.msn.com/filebase)回复于 2005-04-02 23:32:10 得分 0

呵呵,楼主想监视女友聊天吗?Top

4 楼alec626(月吻长河Blog:spaces.msn.com/filebase)回复于 2005-04-02 23:35:55 得分 70

下面是DELPHI下实现的代码,楼主可以参考一下。  
  一、   如何找到QQ消息发送窗口句柄:    
   
  QQ消息发送窗口有两种,一种是消息模式,在这种情况下,窗口标题含有“发送消息”字样;一种是聊天模式,窗口标题含有“聊天中”字样;    
   
  通过枚举窗口就可找到相应的句柄:    
   
  //   取得QQ的发送消息窗口    
   
  function   GetQQWnd:   HWND;    
   
  var    
   
  hCurrentWindow:   HWnd;    
   
  WndText:String;    
   
  begin    
   
  hCurrentWindow   :=   GetWindow(Application.Handle,   GW_HWNDFIRST);    
   
  while   hCurrentWindow   <>   0   do    
   
  begin    
   
  WndText:=GetWndText(hCurrentWindow);    
   
  if   (Pos('聊天中',WndText)>0)   or   (Pos('发送消息',WndText)>0)   then    
   
  begin    
   
  Result:=hCurrentWindow;    
   
  Exit;    
   
  end;    
   
  hCurrentWindow   :=   GetWindow(hCurrentWindow,   GW_HWNDNEXT);    
   
  end;    
   
  Result:=0;    
   
  end;    
   
  二、   如何找到“发送”按钮窗口句柄:    
   
  找到了QQ的发送消息窗口后,就可以进一步查找“发送”按钮句柄了,如窗口句柄为qqWnd,则可以用一个循环,查找文本中含有“发送”字样的窗口,经过试验发现,“发送”按钮恰恰是窗体的第一个子窗口,这样,可以用    
   
  btnWnd:=GetDlgItem(qqWnd,1);   //   发送按钮    
   
  来获得“发送”按钮的句柄。    
   
  三、   如何找到消息文本框窗口句柄:    
   
  消息文本框并不好找,不过你可以先在消息文本框中输入几个字母,如“abcd”,这样我们就可以用上述方法来查找了,不过通过实验后,发现消息文本框并不是QQ窗口的直接子窗口,而是其中一个子窗口的子窗口,通过实验,可以用    
   
  txtWnd:=GetWindow(GetDlgItem(qqWnd,0),GW_CHILD);   //   文本框    
   
  来获得。    
   
  四、   如何获得原消息文本框的文本:    
   
  要获取原消息文本框的文本,只需要一个API函数就行了,如下:    
   
  //   获得窗口文本    
   
  function   GetWndText(hWnd:   HWND):   String;    
   
  Var    
   
  Ret:LongInt;    
   
  mText:PChar;    
   
  Buf:Integer;    
   
  begin    
   
  Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;    
   
  GetMem(mText,Ret);    
   
  try    
   
  Buf:=LongInt(mText);    
   
  SendMessage(hWnd,WM_GETTEXT,Ret,Buf);    
   
  Result:=StrPas(mText);    
   
  finally    
   
  FreeMem(mText,Ret);    
   
  end;    
   
  end;    
   
  五、   如何住原消息文本框里追加文本:    
   
  与取文本相反    
   
  //   发送文本到窗口    
   
  procedure   SetWndText(hWnd:   HWND;   Text:   String);    
   
  Var    
   
  Ret:LongInt;    
   
  mText:PChar;    
   
  Buf:Integer;    
   
  begin    
   
  GetMem(mText,Length(Text));    
   
  StrCopy(mText,PChar(Text));    
   
  try    
   
  Buf:=LongInt(mText);    
   
  SendMessage(hWnd,WM_SETTEXT,0,Buf);    
   
  finally    
   
  FreeMem(mText,Length(Text));    
   
  end;    
   
  end;    
   
  六、   如果让“发送”按钮自动点击:    
   
  一切都准备好了,现在要开始发送了,为了让消息自动发送,我们可以模拟“发送”按钮被点击了。    
   
  SendMessage(btnWnd,WM_LBUTTONDOWN,MK_LBUTTON,0);    
   
  SendMessage(btnWnd,WM_LBUTTONUP,0,0);    
   
  通过模拟一个鼠标在“开始”按钮上的按下与放开,就实现了点击发送功能。    
  Top

5 楼t_jl1979(骑士)回复于 2005-04-03 08:32:12 得分 0

pascal没学过,dephi更没见过。你这里是不是都是API调用,有哪些是dephi自己的函数?Top

相关问题

  • 知道qq的ip后,怎样远程控制?
  • 如何实现类似如QQ,MSN远程控制功能
  • 远程控制
  • 远程控制
  • 远程控制?
  • ++++++++++++++++++100分求,在线QQ远程控制,来帮我链接到SQL数据库的问题。(JSP)+++++++++++++++++++++++++++++++++++++++++++++++++
  • pcanywhere 远程控制问题
  • 远程控制问题 !!!
  • 远程控制的问题
  • 有关远程控制

关键词

  • 消息
  • 文本
  • 函数
  • 聊天
  • 句柄
  • mtext
  • 文本框
  • hcurrentwindow
  • wndtext
  • 按钮

得分解答快速导航

  • 帖主:t_jl1979
  • keiy
  • alec626

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo