请问高手如何在调用一条命令行之后,得到该命令行的运行结果.
例如:
main()
{
system("dir c;");
}
我想得到dir c:这条命令执行完之后输出的结果.请问如何得到这个结果,请指教!
请列出具体代码和API函数,谢谢!!!!!!!

解决方案 »

  1.   

    这是我写在edit控件里的,管道输出void CPipleDlg::OnButton1() 
    {
      UpdateData(TRUE);
      SECURITY_ATTRIBUTES sa;
      HANDLE hRead,hWrite;
            
      sa.nLength = sizeof(SECURITY_ATTRIBUTES);
      sa.lpSecurityDescriptor = NULL;
      sa.bInheritHandle = TRUE;
      if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
       MessageBox("Error On CreatePipe()");
         return;
      } 
      STARTUPINFO si;
      PROCESS_INFORMATION pi; 
      si.cb = sizeof(STARTUPINFO);
      GetStartupInfo(&si); 
      si.hStdError = hWrite;
      si.hStdOutput = hWrite;
      si.wShowWindow = SW_HIDE;
      char cmd[512];
      strcpy(cmd,"cmd.exe /c "+m_Edit2);
      si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
      if (!CreateProcess(NULL,cmd 
            ,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {
            MessageBox("Error on CreateProcess()");
            return;
      }
      CloseHandle(hWrite);
            
      char buffer[4096] = {0};
      DWORD bytesRead; 
      while (true) {
          if (ReadFile(hRead,buffer,sizeof(buffer),&bytesRead,NULL) == NULL)
              break;
      m_Edit1 =m_1;
          m_Edit1 += buffer;
      m_1=m_Edit1;
          UpdateData(false);
          Sleep(200); 
      } 

    }