http://expert.csdn.net/Expert/topic/1588/1588351.xml?temp=.6849634还是这个问题,如果我用ShellExecute函数打开一个新进程可以吗?
如果可以请问OnNewWindow2这里怎么做?
谢谢!

解决方案 »

  1.   

    ehom(?!)所写的方法就可以了。
    不对,IE也是多窗口浏览器,如果不是点图标再打开一个IE,所有窗口在同一进程procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    begin
      Form1:=TForm1.Create(Application);
      Form1.Show;
      ppDisp:=Form1.WebBrowser1.ControlInterface;
    end;试试,这就可以了~~~
      

  2.   

    就用 ehom(?!) 的方法,然后在CreateParams设置就能在任务栏上显示出来了:
    procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.WndParent := GetDesktopWindow;
    end;
      

  3.   

    什么函数可以把string和pchar类型相转换?
      

  4.   

    你是不是声明时没有加上override?
    protected
      procedure CreateParams(var Params: TCreateParams); override;
    ...当然这种方法关闭了主窗口后程序就退出了。
      

  5.   

    直接强制类型转换就行了:
    pchar(s)
    string(p)
      

  6.   

    也加了,不过
    procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.WndParent := GetDesktopWindow;
    end;程序一启动就任务栏会打开2个进程
      

  7.   

    在FormCreate加上:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    end;