PROCESS_INFORMATION    pi; 
STARTUPINFO            si 
si.cb =  sizeof(STARTUPINFO); 
GetStartupInfo(&si);   
si.wShowWindow = SW_HIDE;
BOOL    bres    =    CreateProcess("D:\\workstation\\HYgame\\HYChess\\Source\\Bin\\Debug\\RaceRoomCreator.exe",NULL,NULL,NULL,false,NORMAL_PRIORITY_CLASS, NULL,NULL,&si,&pi); 
if(bres==false)   
{   
       AfxMessageBox("CreateProcess    failed");   
}   
else   
{   
   WaitForInputIdle(pi.hProcess,0);   
}   
创建的RaceRoomCreator.exe死活隐藏不了  为什么     RaceRoomCreator.exe是写好的一个程序  基于dialog的

解决方案 »

  1.   

    http://hi.baidu.com/coldzenleft/blog/item/0fd7a7ca154982fa52664fc3.html/cmtid/4441770ef68472216059f3f3#4441770ef68472216059f3f3
      

  2.   

    你可以调用该函数
    HINSTANCE ShellExecute(
        HWND hwnd, 
        LPCTSTR lpVerb,
        LPCTSTR lpFile, 
        LPCTSTR lpParameters, 
        LPCTSTR lpDirectory,
        INT nShowCmd
    );
    最后一个参数传入SW_HIDE  
    ,其他的你想是什么样的,自己传参数!
      

  3.   

    仔细看下CreateProcess的Msdn,里面说的很清楚
      

  4.   

    STARTUPINFO中的wShowWindow成员没有启用,在si.wShowWindow = SW_HIDE;前面加上
    si.dwFlags = STARTF_USESHOWWINDOW;
      

  5.   

    RaceRoomCreator.exe 是你写的吗?
    如果他里面调用ShowWindow之类的。你等于没干活。
      

  6.   

    这个要隐藏的时候也是初始化的时候进行,要不你可以利用现成插入技术,实现进程的隐藏,也就是创建远程线程CreateRemoteThread
      

  7.   

    si 里有个flag什么的玩意,,这个设置了才会生效你的 SW_HIDE msdn里有说,,粗心了吧
      

  8.   

    楼主的程序没有问题啊,我试了一下,能隐藏啊!可能问题出在对话框程序那里吧,对于被调用程序来说,si.wShowWindow = SW_HIDE;仅仅是第一次用ShowWindow时才起作用,以后调用的的话除非参数是SW_SHOWDEFAULT否则si.wShowWindow就没有效果了.
      

  9.   

    实在不行,就ShowWindow(,..,SW_HIDE)吧
      

  10.   

    如果创建的进程的窗口是用DialogBox显示的,那么是不会隐藏的。
      

  11.   

    建议楼主在RaceRoomCreator.exe里面处理隐藏窗口的事情。
    比如加一个命令行 -NoUI,就不显示窗口之类的,这样比较安全。