如何获取新打开的IE窗体的句柄
主要是 新开的IE的句柄我想 让程序 新开一个IE 然后获取句柄 然后发送点击消息  然后再关闭现在就是不知道如何获取新打开的IE窗体的句柄

解决方案 »

  1.   

    HOOK CreateProcess获得新打开IE的pid,然后遍历获得句柄
      

  2.   

    HOOK这个CreateProcess函数,运行IE的时候会调用这个函数,你可以通过HOOK获得新创建IE的pid,通过pid获得IE的进程以及句柄
      

  3.   

    uses ddemanfunction GetCurURL:string;
    var DDEClient: TDDEClientConv;
        AddressStr: PChar;
        s:string;
        i:integer;
    begin
      DDEClient:= TDDEClientConv.Create(nil);
      try
      with DDEClient do
        begin
          SetLink('IExplore', 'WWW_GetWindowInfo');
          AddressStr:= RequestData('0xFFFFFFFF');
          s:= StrPas(AddressStr);      if pos('://',s)=0 then exit;      StrDispose(AddressStr);
          CloseLink;
          delete(s,1,1);
          i:=pos('","',s);
          delete(s,i,length(s)-i+1);
          Result:=s;
        end;
      finally
        DDEClient.Free;
      end;
    end;
      

  4.   

    试试:
    var   
    IEHandle:THandle;   
    buf1:Dword;   
    begin   
    IEHandle:=Findwindow('IEFrame',nil);   
    GetWindowThreadProcessId(IEHandle,@buf1);   
    if Buf1<>0 then   
    TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,buf1),$FFFFFFFF);   
    end;