调用cmd.exe程序和外部程序(转)

原创 2004年07月10日 14:14:00

using System;
using System.Diagnostics;


namespace ApplyCmd
{
 ///
 /// CmdUtility 的摘要说明。
 ///
 public class CmdUtility
 {
  
  ///
  /// 执行cmd.exe命令
  ///
  /// 命令文本
  /// 命令输出文本
  public static string ExeCommand(string commandText)
  {
   return ExeCommand(new string []{commandText});
  }
  ///
  /// 执行多条cmd.exe命令
  ///
  /// 命令文本数组
  /// 命令输出文本
  public static string ExeCommand(string [] commandTexts)
  {
   Process p = new Process();
   p.StartInfo.FileName = "cmd.exe";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardInput = true;
   p.StartInfo.RedirectStandardOutput = true;
   p.StartInfo.RedirectStandardError = true;
   p.StartInfo.CreateNoWindow = true;
   string strOutput = null;
   try
   {
    p.Start();
    foreach(string item in commandTexts)
    {
     p.StandardInput.WriteLine(item);
    }
    p.StandardInput.WriteLine("exit");
    strOutput = p.StandardOutput.ReadToEnd();
    p.WaitForExit();
    p.Close();
   }
   catch(Exception e)
   {
    strOutput = e.Message;
   }
   return strOutput;
  }
  ///
  /// 启动外部Windows应用程序,隐藏程序界面
  ///
  /// 应用程序路径名称
  /// true表示成功,false表示失败
  public static bool StartApp(string appName)
  {
   return StartApp(appName,ProcessWindowStyle.Hidden);
  }
  ///
  /// 启动外部应用程序
  ///
  /// 应用程序路径名称
  /// 进程窗口模式
  /// true表示成功,false表示失败
  public static bool StartApp(string appName,ProcessWindowStyle style)
  {
   return StartApp(appName,null,style);
  }
  ///
  /// 启动外部应用程序,隐藏程序界面
  ///
  /// 应用程序路径名称
  /// 启动参数
  /// true表示成功,false表示失败
  public static bool StartApp(string appName,string arguments)
  {
   return StartApp(appName,arguments,ProcessWindowStyle.Hidden);
  }
  ///
  /// 启动外部应用程序
  ///
  /// 应用程序路径名称
  /// 启动参数
  /// 进程窗口模式
  /// true表示成功,false表示失败
  public static bool StartApp(string appName,string arguments,ProcessWindowStyle style)
  {
   bool blnRst = false;
   Process p = new Process();
   p.StartInfo.FileName = appName;//exe,bat and so on
   p.StartInfo.WindowStyle = style;
   p.StartInfo.Arguments = arguments;
   try
   {
    p.Start();
    p.WaitForExit();
    p.Close();
    blnRst = true;
   }
   catch
   {
   }
   return blnRst;
  }
 }
}

ps:利用System.Diagnostics.Process来压缩文件或文件夹

string strArg = "a -r  {0} {1}";
    System.Diagnostics.Process.Start(@"C:/Program Files/WinRAR/rar.exe", String.Format(strArg, txtApp.Text+".rar", txtApp.Text));

strArg为winrar的命令参数,请参考帮助。

C#程序执行EXE文件(调用Delphi)+传参 不同语言调用DLLIMPORT

  • 2012年06月26日 22:24
  • 2.31MB
  • 下载

调用cmd.exe程序和外部程序

using System;using System.Diagnostics;namespace ApplyCmd{ ///  /// CmdUtility 的摘要说明。 ///  public cla...
  • holym
  • holym
  • 2006年10月20日 10:04
  • 2275

C#调用cmd.exe程序和外部程序

using System;using System.Diagnostics;namespace ApplyCmd{ ///  /// CmdUtility 的摘要说明。 ///  public cla...
  • xiaohutushen
  • xiaohutushen
  • 2007年04月05日 17:54
  • 3463

Qt之启动外部程序

QProcess可以用来启动外部程序,并与它们交互。要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串。另外,也可以使用set...
  • u011012932
  • u011012932
  • 2016年01月07日 20:41
  • 13401

VB.NET 调用外部程序

Process.Start(command 指令) 或用以下方法等待命令执行完         Dim objProcess = New System.Diagnostics.Process...
  • ppby2002
  • ppby2002
  • 2011年11月26日 19:55
  • 1155

C/C++执行外部程序(调用外部exe程序)

C中的函数: 1.exec() 函数家族: exec() 家族的函数将会创建一个新的进程来执行程序。(不能设置权限,只是单纯的传值执行exe) _execl, _wexecl _execv, _wex...
  • u011164819
  • u011164819
  • 2016年12月02日 10:53
  • 3144

javascript调用外部程序

 
  • wzumath
  • wzumath
  • 2009年11月16日 11:46
  • 3977

C#如何调用外部程序,及该托盘程序的恢复与隐藏

第一次写博客,太OUT了…… 现状:项目中要调用一个外部的应用程序,该程序最小化之后,隐藏在系统托盘中 要求:如果该程序没有运行,则启动,如果被隐藏在托盘中,则恢复到使用状态 看了网上的资料,好...
  • good_tongtong
  • good_tongtong
  • 2016年03月25日 12:33
  • 1781

java如何调用外部程序

引言;有时候有些项目需求,直接使用java编写比较麻烦,所有我们可能使用其他语言编写的程序来实现。那么我们如何在java中调用外部程序,幸好 java为我们提供了这样的功能。 一.调用外部程序接口...
  • xqhadoop
  • xqhadoop
  • 2017年03月15日 20:50
  • 368

浏览器如何调用外部应用程序

1、首先需要编写一个注册表,扩展名.regWindows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\rtmp] @="URL:rtmp Protoc...
  • lu_wei_wei
  • lu_wei_wei
  • 2017年03月11日 17:17
  • 823
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调用cmd.exe程序和外部程序(转)
举报原因:
原因补充:

(最多只允许输入30个字)