void CDosDirDlg::OnOK() ...{ 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; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; if (!CreateProcess(NULL,"c:/windows/system32/cmd.exe" ,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,4095,&bytesRead,NULL) == NULL) break; m_Edit1 += buffer; UpdateData(false); Sleep(200); } }