牛骨文教育服务平台
(让学习变的简单)
课程搜索
老师搜索
文章搜索
手册搜索
手册文章
搜索
牛骨文首页
创新课程
编程语言
互联网运营
前端开发
大数据
学习手册
Web前端开发
服务端语言
数据库
移动端开发
开发框架
操作系统
学习手册
在线课程
博客笔记
软件商城
建站系统
博文笔记
当前位置:
牛骨文教育服务平台
>
博文笔记
>
使用管道重定向方法获取windows下命令行执行程序结果
使用管道重定向方法获取windows下命令行执行程序结果
创建时间:2011-04-04 投稿人:
浏览次数:4016
关键代码:
void CRedirectPipeDlg::OnBnClickedRunCmd() { // TODO: Add your control notification handler code UpdateData(); m_strOutput = ""; SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; if (!CreatePipe(&hRead,&hWrite,&sa,0)) { MessageBox(_T("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; CString strCmd(_T("cmd /C /"")+m_strCmd+_T("/"")); if (!CreateProcess(NULL, (LPSTR)strCmd.GetString(), NULL, NULL, TRUE, NULL, NULL, NULL, &si,&pi)) { MessageBox(_T("Error on CreateProcess()")); return; } CloseHandle(hWrite); char buffer[4096] = {0}; DWORD bytesRead; while (true) { if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL) break; m_strOutput += buffer; memset(buffer, 0, 4096); UpdateData(false); Sleep(200); } }
效果图:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
上一篇:
DOS基本命令(基本部分)
下一篇:
(C#基础) byte[] 之初始化, 赋值,转换。
热门文章
CTF writeup 2_南邮网络攻防训...
SSM框架——详细整合教程(...
Linux Shell脚本编程--curl命...
HttpClient使用详解
Java面试题全集(上)
JAVA设计模式之单例模式
java.lang.OutOfMemoryError: PermGen ...
TCP协议中的三次握手和四次...
form表单的两种提交方式,su...
String,StringBuffer与StringBuilder...
最新文章
Java之品优购课程讲义_day20(7)
剑指 Offer - 8:跳台阶
Netty权威指南_札记02_NIO编程
mysql时间属性之时间戳和datetime之...
虚拟现实或许可以拯救古埃及的“...
spring cloud服务注册中心eureka---集群...
Java SE 第六章
HTTP请求+数据库
HIDL学习笔记之HIDL C++(第二天)
ubuntu系统下指定tomcat运行时为JDK1.8...
copyright © 2008-2019 亿联网络 版权所有 备案号:
粤ICP备14031511号-2