win32控制台

可回显的调用方法:

这个方法步骤比较复杂,是通过创建一个新进程来模拟cmd命令行,将写命令行和回显通过管道的方式呈现。
例如:

view plain

1.  void CTestMFCDlg::OnOK()   

2.  {  

3.      // TODO: Add extra validation here  

4.      SECURITY_ATTRIBUTES sa;  

5.      HANDLE hRead,hWrite;  

6.    

7.      sa.nLength = sizeof(SECURITY_ATTRIBUTES);  

8.      sa.lpSecurityDescriptor = NULL;  

9.      sa.bInheritHandle = TRUE;  

10.  

11.    if(!CreatePipe(&hRead,&hWrite,&sa,0))  

12.    {  

13.        MessageBox("CreatePipe Failed");  

14.        return;  

15.    }  

16.  

17.    STARTUPINFO si;  

18.    PROCESS_INFORMATION pi;  

19.  

20.    ZeroMemory(&si,sizeof(STARTUPINFO));  

21.    si.cb = sizeof(STARTUPINFO);  

22.    GetStartupInfo(&si);  

23.    si.hStdError = hWrite;  

24.    si.hStdOutput = hWrite;  

25.    si.wShowWindow = SW_HIDE;  

26.    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;  

27.  

28.    char cmdline[200];  

29.    CString tmp,stredit2;  

30.    GetDlgItemText(IDC_EDIT_CMD,stredit2);  

31.    tmp.Format("cmd /C %s",stredit2);  

32.    sprintf(cmdline,"%s",tmp);  

33.  

34.    if(!CreateProcess(NULL,cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))  

35.    {  

36.        MessageBox("CreateProcess failed!");  

37.        return;  

38.    }  

39.    CloseHandle(hWrite);  

40.  

41.    char buffer[4096] = {0};  

42.    CString strOutput;  

43.    DWORD bytesRead;  

44.  

45.    while(1)  

46.    {  

47.        if(NULL == ReadFile(hRead,buffer,4095,&bytesRead,NULL))  

48.        {  

49.           break;  

50.        }  

51.        strOutput += buffer;  

52.        SetDlgItemText(IDC_EDIT_TEXT,strOutput);  

53.        UpdateWindow();  

54.        Sleep(1000);  

55.    }  

56.    CloseHandle(hRead);  

57.}  

以上是在一个MFC中点击OnOK按钮后,将IDC_EDIT_CMD编辑框中的命令执行,并将1秒内cmd命令的回显答应到IDC_EDIT_TEXT编辑框中的实现。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html是前段还是后端,javascript属于前端还是后端?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。前端开发和后端开发的区别在于&#xff1a…

ubuntu12.04中shell脚本无法使用source的原因及解决方法

现象: shell脚本中source aaa.sh时提示 source: not found 原因: ls -l which sh 提示/bin/sh -> dash 这说明是用dash来进行解析的。 改回方法: 命令行执行:sudo dpkg-reconfigure dash 在界面中选择no 再ls -l which sh 提…

2021年河北省高考成绩录取查询结果,2021年河北高考一本录取结果查询和录取通知书发放时间...

河北高考一本录取结果查询和录取通知书发放时间从河北教育考试院获悉,河北高考成绩查询时间已经确定。同时,考生、家长关心的各批次录取时间也已出炉。其中,本科一批高等学校录取时间安排如下:本科一批第一志愿录取结束时间为7月1…

viewgroup 渲染过程

参考 http://blog.csdn.net/luoshengyang/article/details/8372924 总体步骤 performTraversals-->measure---->layout----->draw 测量布局渲染 1.measure 测量过程 例子:FrameLayout measure 测量开始判读是否需要测量 onMeasure 求实际宽度 measureChi…

C++读取ini文件的类

C读取ini文件的类 取自:http://www.viksoe.dk/code/all_mfc.htm,里面有各种MFC常用的类 // Ini.h: interface for the CIni class. // // Written by Bjarke Viksoe (bjarkeviksoe.dk) // Copyright (c) 2000. // // This code may be used in compiled …

A20(emmc) 编译环境

1. 需要物理内存3G,或者调高虚拟内存,否则编译会报错(killed) 2. 安装jdk 3. apt-get install bison apt-get install flex apt-get install gperf apt-get install libswitch-perl apt-get install libxml2-utils

Linux查看设置系统时区

关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚。为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早。东边…

SQL基础问题整理

在程序中,数据库操作是必不可少的部分,所以我们要备足数据库相关知识才能去应付程序中出现的种种问题。基于此,我特地在国外网站、博客上整理了一些问题,并附带了答案和解释、参考。为了保证“原汁原味”,我就保留了英…

计算机突然从桌面消失了,电脑桌面突然什么都没有了,怎么处理

★桌面-点击鼠标右键-点击排列图标-点击显示桌面图标★在桌面上右键点击→“属性”→桌面项→左下有个“自定义桌面”进入设置,把你需要的桌面项目打上勾,然后确定就行了。★先按ctrlaltdel三键打开任务管理器&#xf…

V210 时区

V210默认时区是格林尼治时间,只要把ubuntu的/etc/localtime文件拷贝到板子上就可以了 用date -R可以看到时区是否正确

腾讯或联姻优酷,微信嫁女模式引发互联网通婚潮流

据消息称:腾讯在前段时间联姻京东后有可能继续做甩手掌柜,这回要甩的是腾讯视频。 前几年,最火爆的电商业务除了电商外,再者一个就是视频业务了。 不知道大家还记得优酷当时的崛起之初的情景么?我来罗列一下: 1、 大…

微型计算机键盘上的西服的间称为,一台完整的微型计算机主要由主机箱. .键盘.鼠标及音箱.打印机组成....

阅读下面的文字,完成后面题目。(25分)“博客之父”方兴东(节选)打开百度,输入“方兴东’’搜索,100多万条信息赫然呈现。罩在方兴东头上的光环颇多:清华大学博士、专栏作家、互联网评论家……而“中国博客之父”的称号&#xff0c…

mplayer

mplayer -af volume20 *.mp3 经测试,volume在-50和50这个区间就可以了,0最佳,超过0就爆音

[翻译] 学习iOS开发的建议:如何从菜鸟到专家

[文章原地址] http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-from-novice-to-expert/ 翻译有误之处请勿见笑,本人将在文章的部分地方添加注释,并根据需求增减文章内容,在此对原作者辛勤劳作表示感谢 iOS Quick Tip: From Novi…

计算机工程与应用查重吗,计算机工程期刊录用率_计算机工程与应用期刊_计算机八大核心期刊...

《计算机工程》杂志怎么样都是各高校开设的课程也不尽相同,但学习深度和侧重点不一样。计算机科学期刊写人脸检测的录取率高吗计算机专业发一篇sci相对比较容易,所以必须看你在那个杂志上发表,下面最顶级的也就是计算机一区的期刊&#xff0c…

如何将多个源文件编译为一个.ko

陆陆续续也写了几个Linux内核模块了,但每次都是把代码写在一个源文件中,上次尝试了写在两个.c文件中,结果没有编译通过。 无奈之下,将其中一个.c文件重命名成.h文件,再include当另一个当中。但是,在.h文件中…

未来计算机将具有图像识别 定理证明,[单选] 低温计与高温计所测温度的分界线为()。...

[单选] 低温计与高温计所测温度的分界线为()。更多相关问题【单选题】向一个栈顶指针为 HS 链式栈中插入一个 s 所指结点时,则执行( )。A. HS next s ; B. s nextHS next ; HS nexts ; C.【判断题】每年10月是青海湖观鸟的最好季节。【单…

[nodejs]国内npm安装nodejs modules失败的几个解决方案

使用npm安装node模块时经常有卡住安装失败的情况,如图所示。原因在于npm服务器在美国,还有就是某强大的防火墙作用。这样的问题导致很多新手放弃使用node,几乎每天都有新手再问这个问题。现在分享一下解决这个问题的解决方案 1.可以通过一劳永…

linux2.6内核Makefile详解

熟悉内核的Makefile对开发设备驱动、理解内核代码结构都是非常重要的linux2.6内核Makefile的许多特性和2.4内核差别很大,在内核目录的documention/kbuild/makefiles.txt中有详细的说明。给大家一个中文版的翻译 目录 1 概述 2 用户与作用 3 Kbuild文件--- 3.1 目标定…

phpstudy编写html,phpStudy简介

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被普遍应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤为适合 web 开发。下面是用 PHP 编写了一个 HTML 脚本,其中嵌入了一些代码来作一些事情(例如…