得到窗口句柄用FindWindow();
得到窗口标题用
char title[200];
SendMessage(hWnd,WM_GETTEXT,sizeof(title),(LPARAM)title);
改变窗口标题用:
SendMessage(hWnd,WM_SETTEXT,0,(LPARAM)"NEW TILTE");
至于实现还是老兄你慢慢来吧。

解决方案 »

  1.   

    FindWindow()本身好像也要用到窗口的标题,不知这位先生自己试过没有。
    我想这个问题的本意大概是要找出所有的窗口标题及其句柄,应该用EnumThreadWndProc来查询所有可能的句柄,并在它的回调函数中加入自己的代码。
      

  2.   

    我也想知道:比如win98的网络登录对话框,我已经用FindWindow()得到它的指针,怎样才能填写UserName,Passwd?
      

  3.   

    回答你的问题:
    1:得到屏幕上的所有窗口的句柄和相应标题
    >>首先得到桌面上所有同级别的最高一级窗口的句柄(参数取为NULL);
      >>>首先得到第一个窗口句柄;
      >>>利用上面的句柄,得到第二个;
      >>>以此类推...
      >>>有了句柄相应的标题也就得到了!
    >>对于上面的每一个句柄,重复上述过程(注意参数),得出各自的子窗口句柄,!
    >>如果子窗口中还有句柄,则以此类推!...
    2:通过编程可以任意更改屏幕上任意窗口的标题
    >>有了句柄,进行这些处理,就不用多说了吧!
    3:在任何新的窗口弹出或建立时可以动态地改变窗口的标题。
    >>这一项就更简单了!本质是抓住句柄!
    关键字:FindWindowEx,GetWindowText,SetWindowText丁丁
      

  4.   

    用FindWindow首先要知道窗口名或窗口类,如果是自己写的程序,这两个是没问题的,但他人写的就不太好办了,虽然可以用Spy++来得到类名,不过这样做了,那还何必自己定局程序,对于xiaozuo所说的用EnumThreadProc用是比较好用,而且还能得到一些额外的东东,就是好象有点烦,用下面一段程序就可以解决你的问题了:
    HWND  wnd,wnd1;
    wnd=::GetForegroundWindow();;
    wnd1=::GetNextWindow(wnd,GW_HWNDNEXT);
    do{
      if ( !::IsChild(wnd1,wnd) && wnd != (HWND)this)
     {
       //找到了窗口你要怎么做呢
     }
     wnd=wnd1;
     wnd1=::GetNextWindow(wnd,GW_HWNDNEXT);
    }while(wnd1!=NULL);
      

  5.   


        关于网络登录对话框的问题,我想使用控件ID来得到窗口指针应该会比较容易、可行,因为这些资源ID是在设计阶段就固定下来的。
      

  6.   

    BOOL EnumDesktopWindows(
      HDESK hDesktop,   // handle to desktop to enumerate
      WNDENUMPROC lpfn, // points to application's callback function
      LPARAM lParam     // 32-bit value to pass to the callback function
    );
     
      

  7.   

    作者回复:此问题已解决我已经实现了如何更改系统所有窗口不论是别人的还是我的任何窗口的标题包括不可见窗口、无标题窗口不规则窗口等等所以参与此问题的朋友过几天将均有可能获得本程序以及PDF格式文件反编译为中文TXT的自编测试程序敬请期待您的信箱!