首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请教怎么在调用一条命令行之后,得到该命令行的运行结果,绝对给分,放心!

2012-01-29 
请问如何在调用一条命令行之后,得到该命令行的运行结果,在线等,绝对给分,放心!!!!!!!!!!请问高手如何在调

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



[解决办法]
这是我写在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);
}

}

热点排行