解决方法一:

  自己放一个文本框,改成黑色,然后输入命令,执行时,你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窗口的更多相关文章

  1. cmd窗口编码设置

    问题描述:不知道误操作了什么,导致cmd窗口的鼠标显示位置出现错位,如下: 现在要将鼠标位置调整回来. 使用工具:cmd. 操作步骤: 1.查看cmd属性可以看到 可以看到是UTF-8编码格式的,我们 ...

  2. 不显示cmd窗口运行jar包

    今天,打开导出的jar包,发现并不能运行,查看jar包中的META-INF文件夹下的MANIFEST.MF文件,发现MANIFEST.MF中并没有Main-Class,于是,就手动添加相应的信息,本项 ...

  3. CMD命令之 :修改windows的CMD窗口输出编码格式为UTF-8

    修改windows的CMD窗口输出编码格式为UTF-8 转载自 http://xuliduo.iteye.com/blog/639923 dos命令: chcp 65001  就是换成UTF-8代码页 ...

  4. CMD窗口如何调整大小 / 颜色

    Windows默认的命令行工具CMD暴丑无比..很多人都会因为这个原因去寻找漂亮的命令行工具.. 但是很多所谓的命令行工具并不能完美的支持到CMD.. 譬如 PowerCMD 或 Cmder 之流.. ...

  5. 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

    一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...

  6. [Skills] 在桌面打开一个BAT文件,CMD窗口不关闭

    每次开机都要取得本机IP,然后远程连接上去,屏幕太小,不好输入,想写个bat,执行就能看到IP,并且停留在cmd窗口上,想来简单,以前搜了好久没找到好的办法,今天找到一个贴子,竟然可以,呵呵!   以 ...

  7. CMD窗口正确显示UTF-8字符

     Go语言教程 http://yiibai.com/go/  CMD窗口正确显示UTF-8字符 http://www.360doc.com/content/13/0424/13/2569758_280 ...

  8. windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因

    一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新 ...

  9. window的cmd窗口运行git

    般情况下,我们在 Window 下安装好 git 后,在运行里面打开 cmd 窗口,在里面直接运行 git --version ,会提示“不是内部或外部命令,也不是一个可运行的程序”. 要想在cmd窗 ...

随机推荐

  1. [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

    [MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...

  2. java当中JDBC当中JNDI用来查找dataSource的例子

    [学习笔记] 8.JNDI用来查找dataSource的例子: import javax.naming.InitialContext;import javax.naming.Context; impo ...

  3. go 渲染数据到文件

    //把数据写到文件里面 package main import ( "fmt" "text/template" "time" "o ...

  4. 【C#】上机实验八

    1. 设计一个窗体应用程序,模拟写字板应用程序的基本功能.具体功能要求如下: (1)“文件”菜单中有“新建”.“打开”.“保存”.“退出”子菜单. (2)“编辑”菜单中有“剪切”.“复制”.“粘贴”. ...

  5. js指定日期时间加一天 ,判断指定时间是否为周末

    function dateAdd(startDate) { startDate = new Date(startDate); startDate = +startDate + ***; startDa ...

  6. windows10环境下的RabbitMQ安装_笔记

    原文:https://blog.csdn.net/weixin_39735923/article/details/79288578 第一步:下载并安装erlang原因:RabbitMQ服务端代码是使用 ...

  7. 玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现

    1 spring-jdbc core JdbcTemplate 等相关核心接口和类(核心) datesource 数据源相关的辅助类(内嵌数据源的初始化) object 将基本的JDBC操作封装成对象 ...

  8. postman调用webapi错误记录

    1.webapi ,接口中header中,value 不能太长,太长会报错 结局:value中不要存太长的数据 2.如果key 中有中文,会获取不到数据 , 解决:需要把中文转码,然后后端解码 3.如 ...

  9. Qt 子线程更新Ui

    最近做练习,写一个Qt版的飞机大战,需要用子线程更新UI,发现Qt子线程不能更新Ui,否则程序会崩溃.在网上百度了下,说是需要在子线程自定义信号,然后在线程回调的run()函数里发射信号,主线程连接信 ...

  10. Qt QListWidget

    以下代码是 List Widget 添加数据项的代码,一般放在构造函数即可. /*********************添加数据项*********************/ QIcon icon1 ...