怎样获取CONSOLE的输出信息 比如我在程序里创建了线程启动 "ping www.sohu.com" 如何获取输出信息? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #define EXECDOSCMD "ping www.sohu.com" //可以换成你的命令BOOL ExecDosCmd(){ 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中就是执行的结果,可以保存到文本,也可以直接输出 printf(buffer); Sleep(200); } return TRUE;} 分收到了吗,我这个帖子怎么结不了,前边已经打上对号了,CSDN是不是有BUG 关于ReadProcessMemory函数 请教关于动画的制作 在VC中如何使用PNG文件 请教汉化程序的思路 关于visual assist x在中文vc2003下syntax color 无法正常显示,请高人进来指点指点! 如何在程序里面 创建进程,并用钩子监视这个进程? 图形学问题,再线等待。 高分求救,同一单文档窗口如何打开多个不同的bmp文件 求助设置win32 Application的图标为系统文件夹图标 怎样将一个目录或文件映射成一个盘符? 在对话框下,怎样设置列表框listbox和文本框text的文字颜色,背景颜色,文字字体,文字大小? 转发消息!来者有分
BOOL ExecDosCmd()
{
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中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);
Sleep(200);
}
return TRUE;
}