帮助看一下.谢谢先...

var 
    SI: TStartupInfo;
    PI: TProcessInformation;

begin
  FillChar(sI,sizeof(sI),#0);
  sI.cb := SizeOf(sI);      // CREATE_NEW_CONSOLE or
  si.dwFlags:=STARTF_USESTDHANDLES; //or STARTF_USESTDHANDLES
  SI.wShowWindow := SW_hide;  
  s:='cmd.exe /k C:\turboc2\tcc -exxx '+filename+'>'+refilename;
  //i:=ShellExecute(handle, 'open', PChar('command.com'), PChar(s), nil, SW_hide); --以前用这个DOS窗口不会显示出来.
  CreateProcess(nil,pchar(s),nil,nil,false,NORMAL_PRIORITY_CLASS, nil, nil, sI, pI) ;  --现在DOS窗口会显示出来.
end;怎么使DOS窗口不显示出来,    SI.wShowWindow := SW_hide; 这样不行吗!?

解决方案 »

  1.   

    有些EXE好象是无法隐藏,特别是WIN98系统中
      

  2.   

    请问你是怎么解决的,我有个程序试过很多方法都不行包括以下方法,能将你的方法共享吗?
    在次先谢谢了!!!!
     主  题:  请教如何打开一个外部程序并隐藏,,  
    作  者:  fenghuovb (烽火)  
    等  级:    
    信 誉 值:  95  
    所属社区:  Delphi Windows SDK/API  
    问题点数:  20  
    回复次数:  4  
    发表时间:  2004-9-10 17:06:22  
       
     
       我原来打算用 createprocess打开外部程序,用这个函数的参数隐藏,结果发现对于有些程序特别是delphi程序不起作用。。var
      i: Boolean;
      PI: _PROCESS_INFORMATION;
      SI: _STARTUPINFOA;
    begin
      fillchar(SI, sizeof(SI), 0);
      SI.cb := sizeof(SI);
      SI.wShowWindow := SW_HIDE;
      SI.dwFlags := STARTF_USESHOWWINDOW;
      i := CreateProcess(nil, PChar('notepad.exe'), nil, nil, FALSE, CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI);
      if i = TRUE then showmessage('right');
    end;我测试时用的是记事本程序,发现他可以隐藏,但时如果的 regedit.exe就不行了,特别是delphi编的程序,大部分都不行。。请问是什么原因,如果解决
      
      回复人: lianshaohua(永远深爱一个叫“然”的好女孩儿!) ( ) 信誉:100  2004-9-10 17:12:29  得分: 20  
     
     
       
    用shellexecute(form1.handle,'open',pchar('name.exe'),'-s','',sw_hide)可以吗?  
     
    Top  
     
     回复人: fenghuovb(烽火) ( ) 信誉:95  2004-9-10 17:23:34  得分: 0  
     
     
       
    '-s' 用于regedit可以,不过对于delphi编的程序就不行了。  
     
    Top  
     
     回复人: fenghuovb(烽火) ( ) 信誉:95  2004-9-11 8:57:31  得分: 0  
     
     
       
    在顶,希望有人帮助..
      
     
    Top  
     
     回复人: fenghuovb(烽火) ( ) 信誉:95  2004-9-24 9:25:54  得分: 0  
     
     
       
    我自已用一个最笨的方法,就是用crateprocess打开程序以后,用一个循环查找窗口,一找到马上就用setparent将其转到我自己的窗口.