如题所示
谢谢大家

解决方案 »

  1.   

    c语言中有个 system() 函数可以用。
      

  2.   

    但是它们都是执行exe,bat等文件实现的,有没有其他的方法不通过cmd.exe来解析命令行
    如strCMD="net start ..."
      执行strCMD
      

  3.   

    sorry,记错了,是CreateProcess。
    给个例子你。BOOL CDOSDlg::ExecDosCmd()
    {
    #define EXECDOSCMD "ping www.163.com" //可以换成你的命令 SECURITY_ATTRIBUTES sa;
    HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor = NULL;
    sa.bInheritHandle = TRUE;
    if (!CreatePipe(&hRead,&hWrite,&sa,0)) 
    {
    return FALSE;
    }  STARTUPINFO si;
    PROCESS_INFORMATION pi; 
    si.cb = sizeof(STARTUPINFO);
    GetStartupInfo(&si); 
    si.hStdError = hWrite;
    si.hStdOutput = hWrite;
    si.wShowWindow = SW_HIDE;
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    //关键步骤,CreateProcess函数参数意义请查阅MSDN
    if (!CreateProcess(NULL, EXECDOSCMD
    ,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) 
    {
    return FALSE;
    }
    CloseHandle(hWrite); char buffer[4096] = {0};
    DWORD bytesRead; 
    while (true) 
    {
    if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
    break;
    //buffer中就是执行的结果,可以保存到文本,也可以直接输出
    TRACE(buffer);
    Sleep(200); 

    return TRUE;
    }