多进程实现DOS重定向输出,界面如下:

主要的代码实现如下:

 #define MAXREADBUFFERLEN (60 * 1000)

 void CRedirectDlg::OnBnClickedButtonRun()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString strCommand, strFileName(_T("Redirect.txt"));
m_strCommand.TrimRight(_T(" "));
if (m_strCommand == _T(""))
{
return;
}
strCommand.Format(_T("cmd.exe /c \"%s\">%s"), m_strCommand, strFileName); //创建一个不要出现DOS窗口的、影藏的命令执行线程
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
PROCESS_INFORMATION pi;
BOOL res = CreateProcess(NULL, strCommand.GetBuffer(), NULL, NULL, NULL,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
if (!res)
{
AfxMessageBox(_T("创建线程出错。"));
return;
} //等待进程执行完毕
WaitForSingleObject(pi.hProcess, INFINITE); //如果打开文件失败,则有可能文件仍在使用中,可以多次读取
TCHAR szBuff[MAXREADBUFFERLEN] = { };
BOOL bSuccess = FALSE;
try
{
CFile file;
if (file.Open(strFileName, CFile::modeReadWrite, NULL))
{
file.Read((TCHAR*)szBuff, MAXREADBUFFERLEN);
file.Close();
bSuccess = TRUE;
}
}
catch (CFileException e)
{
Sleep();
} //如果打开文件成功,则删除临时文件,并显示出结果
if (bSuccess)
{
DeleteFile(strFileName);
m_strResult.Format(_T("%s"), (TCHAR*)szBuff);
}
else
{
AfxMessageBox(_T("程序执行出错。"), MB_ICONERROR | MB_OK);
} UpdateData(FALSE);
}

下载地址:http://pan.baidu.com/s/1eQl6pTC

多进程demo的更多相关文章

  1. Python简单多进程demo

    ''' 多线程使用场景: 怎样用Python的多线程提高效率? io操作不占用CPU 计算操作占用CPU Python多线程不适合CPU操作密集型的任务,适合io操作密集型的任务 如果有CPU操作密集 ...

  2. 基于tornado的文件上传demo

    这里,web框架是tornado的4.0版本,文件上传组件,是用的bootstrap-fileinput. 这个小demo,是给合作伙伴提供的,模拟APP上摄像头拍照,上传给后台服务进行图像识别用,识 ...

  3. 【php爬虫】百万级别知乎用户数据爬取与分析

    代码托管地址:https://github.com/hoohack/zhihuSpider 这次抓取了110万的用户数据,数据分析结果如下: 开发前的准备 安装Linux系统(Ubuntu14.04) ...

  4. PHP爬虫

    使用PHP的curl扩展抓取页面数据 PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库. 本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能 ...

  5. Python 多线程、进程、协程上手体验

    浅谈 Python 多线程.进程.协程上手体验 前言:浅谈 Python 很多人都认为 Python 的多线程是垃圾(GIL 说这锅甩不掉啊~):本章节主要给你体验下 Python 的两个库 Thre ...

  6. NodeJs多进程和socket.io通讯-DEMO

    一.开启多进程 const os = require('os'); const cp = require('child_process'); const forkList = {}; const fo ...

  7. PHP多进程学习(一)__来初步了解一下PHP多进程及简单demo

    php是一门单进程弱类型的语言,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,多进程的作用优点大家可以去网上了解,PHP实现多进程在实际项目中意义也是不容小觑的.比如:日常 ...

  8. 简化的nginx多进程模型demo

    //version 1:以下代码仅演示nginx多进程模型[test@vm c]$ cat mynginx.c#include <stdio.h> #include <string. ...

  9. 多进程用户并发处理Demo(C#版)

    这个示例主要演示的是在多进程操作数据库时,如何避免并发重复数据入库的例子. 过多的线程理论不再阐述,网上.书上皆有. 项目采用 Asp.Net Framework 4.5 / Mysql 5.4 数据 ...

随机推荐

  1. dzone Cloud Zone

    dzone Cloud Zonehttps://dzone.com/cloud-computing-tutorials-tools-news有一些统计:https://dzone.com/refcar ...

  2. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

  3. 解决Eclipse代码提示消失的方法

    注意:首先要做的是windows->preferences->java->Editor->"ContentAssist", auto-activetion中 ...

  4. 简明Python3教程 13.面向对象编程

    简介 (注: OOP代表面向对象编程,OO代表面向对象,以后全部使用英文缩写) 迄今为止我们编写的所有程序都是围绕函数创建的,函数即操纵数据的语句块.这称作面向过程编程. 除此之外还有另一种组织程序的 ...

  5. Netty In Action中文版 - 第六章:ChannelHandler

    本章介绍 ChannelPipeline ChannelHandlerContext ChannelHandler Inbound vs outbound(入站和出站) 接受连接或创建他们仅仅是你的应 ...

  6. 用WPF实现打印及打印预览

    原文:用WPF实现打印及打印预览 应该说,WPF极大地简化了我们的打印输出工作,想过去使用VC++做开发的时候,打印及预览可是一件极麻烦的事情,而现在我不会再使用C++来做Windows的桌面应用了- ...

  7. python 教程 第十三章、 特殊的方法

    第十三章. 特殊的方法 1)    特殊的方法 __init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用. __del__(self) 恰好在对象要被删除之前调用. __st ...

  8. WinRAR 5.50 简体中文正式版发布(20多项改进)

    感谢ikimi的投递 流行好用的压缩工具,支持鼠标拖放及外壳扩展,完美支持 ZIP 档案,内置程序可以解开 CAB.ARJ.LZH.TAR.GZ.ACE.UUE.BZ2.JAR.ISO 等多种类型的压 ...

  9. WPF使用矢量字体图标(阿里巴巴iconfont)

    原文:WPF使用矢量字体图标(阿里巴巴iconfont) 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78 ...

  10. js 动态生成div显示id

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...