请问如何在调用一条命令行之后,得到该命令行的运行结果,在线等,绝对给分,放心!!!!!!!!!! 请问高手如何在调用一条命令行之后,得到该命令行的运行结果.例如:main(){system("dir c;");}我想得到dir c:这条命令执行完之后输出的结果.请问如何得到这个结果,请指教!请列出具体代码和API函数,谢谢!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我写在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); } } 双缓冲绘图时内存位图可以开多大? VC中不用状态栏怎么进行状态提示 使用HWND的奇怪问题 各位大哥进来看看怎么练不上数据库啊!我都试了一天了!! 简单题,送分! 怎样获得树型控件中节点信息? 哪位老大有mpeg-1的压缩、解码的C代码。我头都大了,自己实在搞不出来。 为什么ListCtrl写出的数据会连续两个空行? MDI工程中,怎样一个生成的线程中调用CMainFrame的全局变量? MFC五子棋小游戏 请教vc++中uncaughtException()函数的用法 急死了!!!如何先于用户操作???
{
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);
}
}