我想获得当前窗口的标题,用以下代码,但当我打开QQ的时候里面添加的却是空字符串,为什么啊?
代码如下:
procedure TForm1.Timer1Timer(Sender: TObject);
var
s:string;
h:hwnd;
begin
h:=getactivewindow();
setlength(s,100);
getwindowtext(h, pchar(s),100);
listbox1.Items.Add(s);
end;望高手指点一下,谢谢!我想知道是不是我用错函数了,如果我想得到当前窗口的句柄应该用哪个函数?

解决方案 »

  1.   

    不会吧,好像是我的代码有问题,当我将Delphi 的 IDE 设置为当前窗体的时候添加的字符串也是空的!但我不知道问题出在哪?等待答案……
      

  2.   

    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;
      

  3.   

    http://dev.csdn.net/develop/article/21/21715.shtm
      

  4.   

    谢谢高手啊,但有个地方看不懂,
    GetWindow(Application.Handle, GW_HWNDFIRST);能解释一下参数吗?
      

  5.   

    函数功能:该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄。    函数原型:HWND GetWindow(HWND hWnd,UNIT nCmd);    参数:    hWnd:窗口句柄。要获得的窗口句柄是依据nCmd参数值相对于这个窗口的句柄。    nCmd:说明指定窗口与要获得句柄的窗口之间的关系。该参数值可以是下列之一:    GW_CHILD:如果指定窗口是父窗口,则获得的是在Z序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口。    GW_ENABLEDPOUP:(WindowsNT 5.0)返回的句柄标识了属于指定窗口的处于使能状态弹出式窗口(检索使用第一个由GW_HWNDNEXT 查找到的满足前述条件的窗口);如果无使能窗口,则获得的句柄与指定窗口相同。    GW_HWNDFIRST:返回的句柄标识了在Z序最高端的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在Z序最高端的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在z序最高端的顶层窗口:如果指定窗口是子窗口,则句柄标识了在Z序最高端的同属窗口。    GW_HWNDLAST:返回的句柄标识了在z序最低端的相同类型的窗口。如果指定窗口是最高端窗口,则该柄标识了在z序最低端的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在z序最低端的顶层窗口;如果指定窗口是子窗口,则句柄标识了在Z序最低端的同属窗口。    GW_HWNDNEXT:返回的句柄标识了在Z序中指定窗口下的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口下的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在指定窗口下的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口下的同属窗口。    GW HWNDPREV:返回的句柄标识了在Z序中指定窗口上的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口上的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在指定窗口上的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口上的同属窗口。    GW_OWNER:返回的句柄标识了指定窗口的所有者窗口(如果存在)。    返回值:如果函数成功,返回值为窗口句柄;如果与指定窗口有特定关系的窗口不存在,则返回值为NULL。
      

  6.   

    再问一个函数:getforegroundwindow 是不是可以获得当前输入窗口的句柄?
      

  7.   

    可以用 SPY++ 查看窗口结构
    to 楼上:道高一尺,魔高一丈,技术这东东没有谁一定强过谁的
    QQ 的什么反钩子技术好象还没听说过,只知道处理QQ这东东实在是EZ不过
      

  8.   

    我只是想做一个QQ自动登陆程序,不用勾子,用timer扫描,然后sendmessage