在c++程序中调用system()(比如:system("dir d:\\ /a"))时候会弹出一个dos黑框框,然后很快消失,请问如何隐藏这个黑框框使其不出现?

解决方案 »

  1.   


      CString   cmdLine="dir d:\\ /a";   
      STARTUPINFO   si;   
      ZeroMemory(&si,sizeof(si));   
      si.cb=sizeof(si);   
      PROCESS_INFORMATION   pi;   
      ZeroMemory(&pi,sizeof(pi));   
      if(CreateProcess(NULL,cmdLine.GetBufferSetLength(MAX_PATH+1),NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi))   
      {   
        CloseHandle(pi.hThread);   
        CloseHandle(pi.hProcess);   
      }   
      WaitForSingleObject(pi.hProcess,INFINITE);
      

  2.   

    不用system函数     使用CreateProcess函数,其中dwCreateFlag设置为CREATE_NO_WINDOW
      

  3.   

    system函数就是加载cmd.exe(命令提示窗口),如果不想出现这个窗口就不要用它。