【原创】在C#中调用其它程序

有很多情况下我们需要在自己的程序中调用其它已经存在的应用程序来完成所需要的功能,比如调用cmd命令执

行一个dos命令等等。下面就以两个小例子来简单说明一下如何实现这个功能!

 示例1:通过调用cmd命令执行一个dos命令。代码片段如下:

  using System.Diagnostics;//这个是必需的命名空间,一定要导入

  private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //加载CMD命令行并传递参数执行
                Process p = new Process();
                p.StartInfo.FileName = "cmd.exe";//这里是设置要调用的目标程序或文件,FileName 属性不

//需要表示可执行文件。它可以是其扩展名已经与系统上安装的应用程序关联的任何文件类型

                p.StartInfo.UseShellExecute = false;//是否使用操作系统外壳程序启动进程

                p.StartInfo.RedirectStandardInput = true;//重定向标准输入方向

                p.StartInfo.RedirectStandardOutput = true;//重定向标准输出方向

                p.StartInfo.RedirectStandardError = true;//是否将进程的错误输出写入 Process 实例的

//StandardError 成员

                p.StartInfo.CreateNoWindow = true;//是否显示CMD命令提示符窗口

                string strOutput = null;//接收dos命令执行结果

                p.Start();
                p.StandardInput.WriteLine(@"cd e:\downloads\");//这个就是要执行的dos命令
                p.StandardInput.WriteLine("exit");//退出CMD
                strOutput= p.StandardOutput.ReadToEnd();//取得CMD执行结果可用于调用或其它用途
          
                p.WaitForExit();
                p.Close();

              
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
     }

   请注意:在上面的示例中,并不是每一句代码都是必需的,可根据实际需要灵活更改。其中FileName是必须指

定的,Start()方法也是必须调用的。

  示例2.调用记事本程序并打开已存在的文档,假设打开E盘下的"笑话.txt"这个文本文件:
   2.1可以在示例一中将 p.StartInfo的FileName属性指定为"笑话.txt",如:p.StartInfo.FileName = "笑

话.txt"。
   2.2也可以直接执行下面的命令
    System.Diagnostics.Process.Start("notepad.exe", @"E:\笑话.txt");
  如果只是想打开记事本并不需要打开已有文件,直接调用"notepad.exe"文件即可。

  其实FileName属性后面的内容就相当于你在开始菜单的运行栏里面输入的内容一样,只要在运行里面输入命令可

以得到结果就可以直接写在这里,同样获得一样的结果。
  小提醒:如果要执行的dos命令目录中包含空格,则需要用引号(")将整个路径包含起来,否则将会无法执行,相

信但凡有一点dos知识的朋友都会知道这一点。
              
 更多的帮助内容还是看权威的.NET Framework帮助文档吧。。。。。。。。。

转载于:https://www.cnblogs.com/phcis/archive/2008/01/04/1025814.html

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

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

相关文章

case when影响性能吗_字段为NULL会影响查询性能吗?

导读假设这个用户中心系统是一个交友平台的一个子系统,现在产品想要提供一个按生日区间筛选用户的功能。那么,要实现这个功能,我们需要写这么一条SQL:SELECT 为了保证这条SQL的查询性能,我们会给用户表中的birthday字段…

c++ 模板类实现堆栈实验报告_编译原理——小型类C编译器的设计和实现(生成8086汇编代码)之1:问题定义以及总体功能...

前面花了两篇文章来介绍词法分析和语法分析,接下来才是比较有意思的部分——一个小型类C编译器的设计和实现(其实是编译原理的课程设计啦!~)我用的是python2.7.13PyQt来做的。。。事实上,正是从编译原理课程设计开始&a…

一文说通Dotnet的委托

简单的概念,也需要经常看看。一、前言先简单说说Delegate的由来。最早在C/C中,有一个概念叫函数指针。其实就是一个内存指针,指向一个函数。调用函数时,只要调用函数指针就可以了,至于函数本身的实现,可以放…

ansys fluent udf manual 下载_FLUENT流固耦合柱体结构涡激振动仿真案例解析

作者 | 陈东阳博士 仿真秀科普作者一、柱体结构涡激振动定义对于海洋工程、风工程上普遍采用的圆柱形断面结构物,流体绕过柱体时会产生交替发放的泻涡,这种交替发放的泻涡又会在柱体上生成顺流向及横流向周期性变化的脉动压力。如果此时柱体是弹性支撑的…

SQL Server的数据导入MySQL数据库方法简介

第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问题,首先,sql server数…

添加图标_win10系统轻松添加显示桌面图标的操作方法

win10系统想必大家都非常熟悉吧,然而有时候可能会碰到win10系统对win10系统添加显示桌面图标进行设置,比如近日有用户到本站反映说对win10系统添加显示桌面图标设置的情况,到底该怎么设置win10系统添加显示桌面图标呢?我们只用按照…

分享干货:靠刷算法题,真的可以刷进大厂吗?

在国外 Facebook,Google 等互联网巨头中,算法无疑是面试中的重头戏,不过,在最近几年国内互联网大厂面试中,算法的比重也越来越高,算法不扎实,笔试可能就直接被刷了。那你知道大厂的技术面为什么…

SwitchBox系列 - 介绍

很多客户问到了如何让iAMT能够穿过防火墙或网关被管理,他们中的部分也了解到了Intel工程师开发的SwitchBox方案,但都不是很了解。基于此,我正好有机会来共享一些在SwitchBox方面的经验和理解。虽然Intel AMT技术是基于TCP/IP协议上的&#xf…

python找出一个数的所有因子_python – 找到最大素因子的正确算法

我试图找出任何数字的最大素数因子.我正在为python中的这个问题做程序,但是我正在遵循的算法似乎有问题.它似乎陷入无限循环.该计划如下: def prime(n): i0; while(n!2): for i in range(2,n): if(n%i0): prime(n/i); else: continue; print("The highest prim…

获取两个数据的交集_MySQL交集和差集的实现方法

在MySQL中,只支持Union(并集)集合运算,而对于交集Intersect和差集Except并不支持。那么如何才能在MySQL中实现交集和差集呢?一般在MySQL中,我们可以通过in和not in来间接实现交集和差集,当然也有一定局限性&#xff0c…

Asp.Net Core之Identity应用(上篇)

一、前言在前面的篇章介绍中,简单介绍了「IdentityServer4」持久化存储机制相关配置和操作数据,实现了数据迁移,但是未对用户实现持久化操作说明。在总结中我们也提到了,因为「IdentityServer4」本就支持了接入其他认证方式&#…

c++ 读文件_第十六节:读文件,文件的创建,写文件,文件的读写以及鼠标键盘事件和图形绘制...

读文件//读文件文件的创建public 写文件public 文件的读写重点:文件类主要功能:创建,读属性,写属性,删除等文件读写操作File类File类的对象用来获取文件本身的信息,如文件所在目录、文件长度、文件读写权限…

MYSQL 表的修复(不断更新)

我的表一直没有怎么坏过。直到昨天我重装系统后再次装MYSQL的时候提示服务启动不起来。修复如下:MYSQL安装目录/DATA/MYSQL改名为MYSQL2然后重新安装MYSQL数据库。启动后导入相关数据,select * from mysqldb into outfile c:\\db.sql;关于表的所属恢复se…

ios 中间 图片缩放_在 iOS 开发中如何优雅地进行图片缩放?

对于图片拉伸是移动开发中很常见的需求,在前一阵子做项目中需要做一个类似于QQ聊天气泡,这个气泡会根据文字的多少而变化,当时有了三种方案:重写drawRect方法,使用贝赛尔曲线画一个气泡用一个大图作为背景,…

docker安装jenkins并用docker部署net

1. 部署jenkins1.1 创建jenkins的工作目录//创建工作目录 mkdir /var/jenkins_home //赋予权限 chown -R 1000 /var/jenkins_home1.2 通过docker部署1.2.1 拉取镜像docker pull jenkinsci/blueocean1.2.2 生成容器#注意:切换一行执行命令 docker run -u root -d…

页面验证

例子:仅供测试 注册帐号 密码 重新输入密码 身份证号码 银行存款 拥有几家世界500强企业 出生日期 下辈子出生日期 对输入内容进行验证 //这是把JS文件全放在了html里面 可以把里面的JS内容分出2个JS来 另外 身份证的验证 在另一文章里面//http://www.cnb…

python导入文件列行_python读写csv文件并增加行列的实例代码

python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28:17 2017 author: Shawn Yuen """ import csv d list(range(38685)) with open(./kinetics_test.csv) as f1: …

ie插件获取dom_读书笔记《DOM编程艺术》DOM

DOM的理解1.1 D:当创建了一个网页并把它加载到Web浏览器中时,DOM就生成了,它将我们编写的网页文档转换成一个文档对象。1.2 O:“对象”是一种自足的数据集合,相关联的变量称为这个对象的属性,只能通过这个对…

针对Fluent-Bit采集容器日志的补充

hello,之前我写过《一套标准的ASP.NET Core容器化应用日志收集分析方案》,在公司团队、微信公众号、Github上反映良好。其中配置Fluent-bit使用Forward协议收集容器日志,需要在Docker-Compose App配置Loging DriverFluentd实践中,…

Oracle结构设计技巧(访问数据库象访问内存一样 快)

尽管Oracle系统本身已经提供了若干种对系统性能进行调节的技术,但是,假如数据库设计本身就有问题特别是在结构上设计得尤其糟糕,那你纵有天大的本事又能奈何?因此,Oracle数据库的设计者完全有必要弄清楚(从项目着手设计开始)该如…