举个例子,我打开了几个QQ的聊天窗口。怎么样获取这几个窗口(因为我想模拟键盘输入信息并发送)并将其置于最顶端。

解决方案 »

  1.   

    EnumWindows 然后根据标题筛选
      

  2.   

    通过EnumWindows可以枚举出所有窗口。但怎么通过句柄获取该窗口所包含的所有控件,例如所有按钮、所有文本框的内容?
      

  3.   

    09不是用的winForm,
    应该是用GDI+自己画的窗体,
    EnumWindows不管用了...
      

  4.   

    若是 在 C++中可以用Spylite或者是Spy++来查看窗口的句柄但是,QQ的不好搞
      

  5.   

    Delphi中利用钩子实现QQ聊天窗口的修改
    http://dev.yesky.com/477/2168977.shtml
      

  6.   

    EnumWindows
    不过获取的时候。可能会被杀毒软件报警。
      

  7.   

    关键就是想办法取得窗口的类型,取标题不可靠
    然后就可以 findwindow取句柄
    已有句柄就可以findwindowex,getchild...
    enumwindow枚举窗口也可以试试
      

  8.   

    谁发个捕获09的 demo 看看啊
      

  9.   

    现成的DEMO么.没有.目前做的是群聊机器人,参与试用群:55793080
      

  10.   

    C#中哪有demo控件啊,好像没有吧
      

  11.   

    这是我当时用来找 BQQ 窗口的, 你参考一下子namespace notepadinsp
    {
      using System;
      using System.Windows.Forms;  using System.Diagnostics;
      class inspector
      {
        static void Main()
        {
          Process[] procs = Process.GetProcessesByName("bqq3.1.5");
          if (procs.Length != 0)
          {
            IntPtr hwnd = procs[0].MainWindowHandle;
            // do something with the handle
            //...
            MessageBox.Show(new WindowWrapper(hwnd), "Hello World!");
          }
          else
            MessageBox.Show("bqq is not running.");
        }
      }
      public class WindowWrapper : System.Windows.Forms.IWin32Window
      {
        IntPtr _hwnd;    public WindowWrapper(IntPtr handle)
        {
          _hwnd = handle;
        }    public IntPtr Handle
        {
          get { return _hwnd; }
        }
      }
    }
      

  12.   

    首先,很疑惑搂主的意图。
    qq2008以后版本,为防止编程者利用windos API勾选窗口事件,qq已经作了相应调整,
    用户所谓看到的窗口,只不过是腾迅自己画的一个图片,它不是一个窗口!切忌!
    如果你想用窗口获取的方式,对不起,获不到。
    不过办法还是有的,提供给你一个思路。
    比如获得最前端不重叠的完整图片,就是那个登陆画面,再利用点对点方式,获得完整窗口。
    如果想取密码,只能沉默了。
      

  13.   

    各位,首先声明 1、我不做坏事  2、说QQ 只是举个例子,如果QQ如上面几位所说的无法获取句柄的话那我们就用其它窗口来做测试。例如有一个窗口,是一个用于显示提示信息的窗口。由于这窗口的标题与其它窗口会相同,所以无法通过标题来判断。是否还有其它方式来判断当前获取到的窗口是否我想要的?
      

  14.   

    我现在通过EnumChildWindows可以获取到窗口的所有控件的句柄,但如果某个控件是文本框,怎么样把一个值赋予这个文本框?
      

  15.   

    我用旺旺的登录窗口试了一下SetWindowText方法,不行的。按钮就会赋值,但登录名称和密码都没变。
      

  16.   

    现在HWND已经有了,但给文本框赋值不成功。按钮就可以