比如用system("D:");
进入D盘,dos窗口就会闪一下
如果写多个system,就会闪很多下
有什么好办法吗?

解决方案 »

  1.   

    简单的
    把命令写到批处理bat文件里
    system("D:\\cmd.bat");复杂的
    用CreateProcess启动cmd.exe
    用CreatePipe管道进行输入命令,和获取执行结果
      

  2.   

    给个例子就明白
    SHELLEXECUTEINFO si;
    ZeroMemory(&si, sizeof(si));
    si.cbSize = sizeof(si);
    si.fMask = SEE_MASK_NOCLOSEPROCESS;
    si.lpVerb = _T("open");
    CString strbatpath;
    strbatpath=GetAppPath()+_T("Install.bat");
    si.lpFile = strbatpath;
    si.nShow = SW_SHOWNORMAL; ShellExecuteEx(&si);
    m_hInstallProcess=si.hProcess; 
    WaitForSingleObject(si.hProcess,INFINITE);
    CloseHandle(si.hProcess);
      

  3.   

    楼上的已经解决。
    提供另外一个方法:
    Winexec("c:\windows\system32\cmd.exe /c dir >a.txt", SW_HIDE);
    这个方法的缺点是,不等运行结果出来,就会执行下一语句。
    楼上的方法,可以等运行结果出来再执行下一句。
      

  4.   

    si.nShow = SW_HIDE;
    就OK了 谢谢大家