c++ 使用管道获取CMD命令结果
2015-12-30 00:00
691 查看
摘要: c++ 使用管道获取CMD命令结果
UINT __cdecl ThreadProc(LPVOID lParam) { HWND hWnd = (HWND)lParam; ASSERT(hWnd); TCHAR szApp[MAX_PATH] = _T("netstat -s"); HANDLE hRead = NULL; HANDLE hWrite = NULL; SECURITY_ATTRIBUTES sa = {0}; sa.nLength = sizeof(sa); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; if(!CreatePipe(&hRead, &hWrite, &sa, 0)) { AfxMessageBox(_T("CreatePipe failed.")); return -1; } STARTUPINFO si = {sizeof(si)}; PROCESS_INFORMATION pi = {0}; si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.hStdOutput = hWrite; si.hStdError = hWrite; si.wShowWindow = SW_HIDE; if(!CreateProcess(NULL, szApp, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi)) { CloseHandle(hWrite); CloseHandle(hRead); return -1; } CloseHandle(pi.hThread); CloseHandle(pi.hProcess); CloseHandle(hWrite); #define MAX_BUFFER 1024 TCHAR szBuf[MAX_BUFFER] = {0}; DWORD dwRead = 0; CString strText(_T("")); while(ReadFile(hRead, szBuf, MAX_BUFFER-1, &dwRead, NULL)) { strText += szBuf; memset(szBuf, 0, sizeof(szBuf)); } CloseHandle(hRead); AfxMessageBox(strText); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 飞信的CMD命令行接口批量发送信息
- 用vbs实现cmd功能的代码
- CMD命令行高级教程精选合编合集
- cmd下PUSHD和POPD命令使用说明
- cmd del命令 文件删除
- cmd NTSD命令用法详解
- 执行批处理bat程序中的条件处理
- cmd Tasklist与Tskill管理Windows系统进程
- cmd下开启telnet的方法
- cmd fsutil 命令新建空文本文件
- CMD下一个命令遍历目录并删除相同文件的代码
- cmd rd命令 删除文件夹
- cmd if条件 条件判断
- 用vbs实现cmd多命令运行功能代码
- 运行cmd直接进入指定目录下的命令
- CMD命令行中以管理员权限启动应用程序实现方法