惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园 - 【当耐特】
量子位
Engineering at Meta
Engineering at Meta
博客园_首页
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
Jina AI
Jina AI
The Cloudflare Blog
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
博客园 - 聂微东

博客园 - 凌点

clr20r3 system.InvalidOperationException 程序终止的几种解决方案 能上Q 不能上网 JavaScript中url 传递参数(特殊字符) apache 多站点配置 C#中使用 SendMessage 向非顶端窗体发送组合键 System.Xml.XmlException: 根级别上的数据无效 XP,WIN7双系统启动问题 VM安装XP注意事项 make 信息重定向 VC 进度条制件CProgressCtrl 用法笔记 VC List Control控件高级使用 List Control 控件技巧总汇 VC中字符串取子串总结 如何禁用Windows屏保和电源管理 VC获取硬盘物理序列号 unicode cstring to char* - 凌点 将unicode的 Cstring 复制到粘贴板 VC由进程ID获取窗口句柄 嵌入式Linux操作系统学习规划
VC 命令行 捕获输出
凌点 · 2010-11-12 · via 博客园 - 凌点

代码

        STARTUPINFO   si;   //   启动信息   
    PROCESS_INFORMATION   pi;   //   进程信息   
    si.cb   =   sizeof(STARTUPINFO);   
    GetStartupInfo(
&si);   //取得当前进程的StartupInfo,并根据当前进程进行修改 
    si.hStdError   =   hWrite;   //错误输出 
    si.hStdOutput   =   hWrite;   //标准输出 
    si.wShowWindow   =   SW_HIDE; 
    si.dwFlags   
=   STARTF_USESHOWWINDOW   |   STARTF_USESTDHANDLES; 
    CString strCmdLine 
="cmd" ;
    
//创建子进程 
    if   (!CreateProcess(NULL, strCmdLine.GetBuffer(),NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) 
    { 
        MessageBox( 
"创建进程失败!"); 
        
return
    } 
    CloseHandle(hWrite); 
    Sleep(
200); 
    
char   buffer[4096]   =   {0};   
    DWORD   bytesRead;   
    
while   (true
    {   
        
if   (ReadFile(hRead,buffer,4095,&bytesRead,NULL)   ==   NULL)   
            
break;   
        CString strInfo;
        GetDlgItemText(IDC_EDIT_Info,strInfo);
        strInfo   
+=   buffer;  
        SetDlgItemText(IDC_EDIT_Info,strInfo);
        
//TRACE(buffer); 
    } 
    CloseHandle(hRead);