c#嵌套CMD窗口
解决方法一:
自己放一个文本框,改成黑色,然后输入命令,执行时,你Process.Start cmd ,此时CMD窗口不显示,然后,将CMD的返回值,再取出来,设回文本框。
如何用这种方法实时获取cmd返回的数据,简单实现如下

1 private void OutPutForm_Shown(object sender, EventArgs e)
2 {
3 Control.CheckForIllegalCrossThreadCalls = false;
4 process = new Process();
5 p.StartInfo.FileName = "cmd.exe";
6 p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
7 p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
8 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
9 p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
10 p.StartInfo.CreateNoWindow = true;//不显示程序窗口
11 process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
12 process.Start();//启动程序
13 process.BeginOutputReadLine();
14 }
15 private void OutputHandler(object sendingProcess,DataReceivedEventArgs outLine)
16 {
17 if (!String.IsNullOrEmpty(outLine.Data))
18 {
19 StringBuilder sb = new StringBuilder(this.textBox1.Text);
20 this.textBox1.Text = sb.AppendLine(outLine.Data).ToString();
21 this.textBox1.SelectionStart =this.textBox1.Text.Length;
22 this.textBox1.ScrollToCaret();
23 }
24 }

解决方法二:
直接上代码

1 [DllImport("User32.dll ", EntryPoint = "SetParent")]
2 private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
3 [DllImport("user32.dll ", EntryPoint = "ShowWindow")]
4 public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
5 private void button3_Click(object sender, EventArgs e)
6 {
7 Process p = new Process();
8 p.StartInfo.FileName = "cmd.exe ";
9 p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;//加上这句效果更好
10 p.Start();
11 System.Threading.Thread.Sleep(100);//加上,100如果效果没有就继续加大
12
13 SetParent(p.MainWindowHandle, panel1.Handle); //panel1.Handle为要显示外部程序的容器
14 ShowWindow(p.MainWindowHandle, 3);
15 }

备注:记得引用 using System.Runtime.InteropServices;
c#嵌套CMD窗口的更多相关文章
- cmd窗口编码设置
问题描述:不知道误操作了什么,导致cmd窗口的鼠标显示位置出现错位,如下: 现在要将鼠标位置调整回来. 使用工具:cmd. 操作步骤: 1.查看cmd属性可以看到 可以看到是UTF-8编码格式的,我们 ...
- 不显示cmd窗口运行jar包
今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...
- CMD命令之 :修改windows的CMD窗口输出编码格式为UTF-8
修改windows的CMD窗口输出编码格式为UTF-8 转载自 http://xuliduo.iteye.com/blog/639923 dos命令: chcp 65001 就是换成UTF-8代码页 ...
- CMD窗口如何调整大小 / 颜色
Windows默认的命令行工具CMD暴丑无比..很多人都会因为这个原因去寻找漂亮的命令行工具.. 但是很多所谓的命令行工具并不能完美的支持到CMD.. 譬如 PowerCMD 或 Cmder 之流.. ...
- 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类
一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...
- [Skills] 在桌面打开一个BAT文件,CMD窗口不关闭
每次开机都要取得本机IP,然后远程连接上去,屏幕太小,不好输入,想写个bat,执行就能看到IP,并且停留在cmd窗口上,想来简单,以前搜了好久没找到好的办法,今天找到一个贴子,竟然可以,呵呵! 以 ...
- CMD窗口正确显示UTF-8字符
Go语言教程 http://yiibai.com/go/ CMD窗口正确显示UTF-8字符 http://www.360doc.com/content/13/0424/13/2569758_280 ...
- windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因
一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新 ...
- window的cmd窗口运行git
般情况下,我们在 Window 下安装好 git 后,在运行里面打开 cmd 窗口,在里面直接运行 git --version ,会提示“不是内部或外部命令,也不是一个可运行的程序”. 要想在cmd窗 ...
随机推荐
- c++ std::cout重定向到文件
cout默认是与监视器(屏幕)相连,cout出来的内容会输出到屏幕上,通常是会在命令行窗口之中.但有时,我们希望将cout出来的具体日志.错误信息写到某个文件之中,而屏幕上仅仅显示出当前进行的任务,以 ...
- QT 安装 配置过程
QT, QT creator的安装,环境配置: 需要根据这个连接重新梳理一遍:https://blog.csdn.net/win_turn/article/details/50465127 1)一种方 ...
- [转帖]中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作
中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作 http://www.itpub.net/2019/10/31/3942/ 中信银行 gold ...
- SpringBoot自动配置原理学习
介绍 构建Springboot项目时我们会创建一个启动类 @SpringBootApplication public class DemoApplication { public static voi ...
- day38——线程queue、事件event、协程
day38 线程queue 多线程抢占资源 只能让其串行--用到互斥锁 线程queue 队列--先进先出(FIFO) import queue q = queue.Queue(3) q.put(1) ...
- STM32F030C8T6低功耗笔记
2018年5月8日 这个芯片的低功耗搞了好久了,刚开始是7mA降不下去,然后是降到了1mA,到现在的200uA,还是有地方没有弄好,目标是降到50uA左右,目前遇到了问题,进入STOP模式的时候降到了 ...
- Go语言(基本数据类型)
Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 基本数据类型 整型 整型 ...
- Go 协程
Go 协程 协程与传统的系统级线程和进程相比,协程的优势在于其"轻量级",可以轻松创建上百万个协程而不会导致系统资源衰竭,所以协程也叫做轻量级线程. 在Go中goroutine就是 ...
- docker-compose命令使用说明
Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file conf ...
- 使用DOS命令登录管理员并添加账号管理员权限
runas /user:administrator cmd Password: compmgmt.msc