我想 隐藏窗体 调用 webbrowser1 访问网页 点击
unit Unit1;interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, ExtCtrls,ActiveX;type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Timer1: TTimer;
    WebBrowser2: TWebBrowser;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    procedure WebBrowser2BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
    procedure FormCreate(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure ieclick() ;
var webhd:hwnd;
begin
webhd:=GetWindow(GetWindow(form1.WebBrowser1.Handle,   GW_CHILD),   GW_CHILD);
if webhd<>0 then begin
 SendMessage(webhd,WM_LBUTTONDOWN,
MK_LBUTTON,  MAKELONG(354,62));
SendMessage(webhd,WM_LBUTTONUP,
MK_LBUTTON,  MAKELONG(354,62));
 end
 else
 showmessage('no hwnd')  ;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
webbrowser1.Navigate('www.baidu.com');
timer1.Enabled:=false;
timer2.Enabled:=true;
end;procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
 ppDisp:=WebBrowser2.Application;
end;procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
 WebBrowser1.Navigate(URL);
    Cancel:=True;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
//form1.Visible:=false;
timer2.Enabled:=false;end;procedure TForm1.Timer2Timer(Sender: TObject);
var
  hThread:Thandle;//定义一个句柄
  ThreadID:DWord;
  webhwnd:hwnd;
begin
hthread:=CreateThread(nil,0,@ieclick,nil,0,ThreadID);
  if hThread=0 then
messagebox(Handle,'Didn’tCreateaThread',nil,MB_OK);
timer2.Enabled:=false;
end;end.我在 工程文件中program Project1;uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.ShowMainForm:=false;
  Application.Run;
end.
--------
窗体隐藏 
可是调试的过程中   提示错误
尚未调用coinitialize
程序空间未初始化  求解

解决方案 »

  1.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, OleCtrls, SHDocVw;type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        WebBrowser2: TWebBrowser;
        Timer1: TTimer;
        Timer2: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure WebBrowser2BeforeNavigate2(Sender: TObject;
          const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
          Headers: OleVariant; var Cancel: WordBool);
        procedure FormCreate(Sender: TObject);
        procedure Timer2Timer(Sender: TObject);
        procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
          var Cancel: WordBool);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure ieclick() ; 
    var webhd:hwnd; 
    begin 
    webhd:=GetWindow(GetWindow(form1.WebBrowser1.Handle,  GW_CHILD),  GW_CHILD); 
    if webhd <>0 then begin 
    SendMessage(webhd,WM_LBUTTONDOWN, 
    MK_LBUTTON,  MAKELONG(259,236));
    SendMessage(webhd,WM_LBUTTONUP, 
    MK_LBUTTON,  MAKELONG(259,236));
    end 
    else 
    showmessage('no hwnd')  ; 
    end; procedure TForm1.Timer1Timer(Sender: TObject); 
    begin 
    webbrowser1.Navigate('www.baidu.com'); 
    timer1.Enabled:=false; 
    timer2.Enabled:=true;
    end;
    procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject; 
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, 
      Headers: OleVariant; var Cancel: WordBool);
    begin 
    WebBrowser1.Navigate(URL); 
        Cancel:=True; 
    end; procedure TForm1.FormCreate(Sender: TObject);
    var
    dwStyle:DWORD;
    begin 
    //form1.Visible:=false;
    self.Top:=2000;
    dwStyle:= WS_EX_TOOLWINDOW;
    SetWindowLong(Application.Handle, GWL_EXSTYLE, dwStyle);
    timer2.Enabled:=false; end; procedure TForm1.Timer2Timer(Sender: TObject); 
    var 
      hThread:Thandle;//定义一个句柄 
      ThreadID:DWord;
      //webhwnd:hwnd;
    begin 
    hthread:=CreateThread(nil,0,@ieclick,nil,0,ThreadID); 
      if hThread=0 then
    messagebox(Handle,'Didn’tCreateaThread',nil,MB_OK);
    timer2.Enabled:=false; 
    end; 
    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    begin
    ppDisp:=WebBrowser2.Application;
    end;end.
    变通一下 ,也是一样的
    另外,web2并没有使用到
      

  2.   

    隐藏模式下 是否可以正常使用 webbrowser1
    Application.ShowMainForm:=false; ???
      

  3.   

    Application.ShowMainForm:=false; ???加上了这句,就报错,我也不解?