WINHLP32.exe是另外一个程序。他不是主程序的一部分,当然完全独立于主程序了。你完全可以在你的程序里面利用ShellExecute运行一个新的程序。
比如 ShellExecute(NULL, "OPEN", "Http://www.csdn.net", NULL, NULL)
他启动一个IE.ShellExecute(NULL, "OPEN", "Winhlp32.exe", "xxxx.hlp", NULL)
就启动help了

解决方案 »

  1.   

    重载子窗体的CreateParams方法
       TChildForm = class(TForm)
       public
         procedure CreateParams(var Params: TCreateParams); override; 
       end;procedure TChildForm.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.WndParent := 0;
    end;
      

  2.   

    是不是这个意思?
     form2 := tform2.CreateParented(GetDeskTopwindow);
     form2.show;
      

  3.   

    建立一个独立的子窗口是不可能的,
    只能把它作成两个独立一程序,
    这样在一个程序中通过 ShellExecute来调用
    ShellExecute(handle,'open',PChar('E:\Sanalyse.exe'),nil,nil,SW_SHOW);
      

  4.   

    建立一个独立的子窗口是不可能的,
    只能把它作成两个独立一程序,
    这样在一个程序中通过 ShellExecute来调用
    ShellExecute(handle,'open',PChar('E:\Sanalyse.exe'),nil,nil,SW_SHOW);
      

  5.   

    shellexecute(handle,"open",pathtofolder,null,null,sw_shownormal);
      

  6.   

    shellexecute(handle,"open",pathtofolder,null,null,sw_shownormal);