在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序。

using   System.Diagnostics;   
  如果是dos   
  Process.Start("cmd.exe");   
  如果是其他文件   
  Process.Start("绝对路径+文件名.exe");   
  ------------------------------------   
  如何在c#中调用外部dos程序?   
  使用Process对象:       
  System.Diagnostics.Process     p=new     System.Diagnostics.Process();       
  p.StartInfo.FileName="arj.exe"     ;//需要启动的程序名       
  p.StartInfo.Arguments="-x     sourceFile.Arj     c:/temp";//启动参数       
  p.Start();//启动       
  if(p.HasExisted)//判断是否运行结束       
    p.kill();

-------------------------------------------------------------------------------------------------------------------------------------
///   <summary>   
  ///   启动其他的应用程序   
  ///   </summary>   
  ///   <param   name="file">应用程序名称</param>   
  ///   <param   name="workdirectory">应用程序工作目录</param>   
  ///   <param   name="args">命令行参数</param>   
  ///   <param   name="style">窗口风格</param>   
  public   static   bool   StartProcess(string   file,string   workdirectory,string   args,ProcessWindowStyle   style)   
  {   
  try   
  {   
  Process   myprocess   =   new   Process();   
  ProcessStartInfo   startInfo   =   new   ProcessStartInfo(file,args);   
  startInfo.WindowStyle   =   style;   
  startInfo.WorkingDirectory   =   workdirectory;   
  myprocess.StartInfo   =   startInfo;   
  myprocess.StartInfo.UseShellExecute   =   false;   
  myprocess.Start();   
  return   true;   
  }   
  catch(Exception   e0)   
  {   
  MessageBox.Show("启动应用程序时出错!原因:"   +   e0.Message);   
  }   
  return   false;   
  }   
    
    
    
  string   parms   =   ""   +   GlobalObject.GetInstance().UserID   +   "   "   +   GlobalObject.GetInstance().UserPassword;   
  if   (PublicMethods.StartProcess(Application.StartupPath   +   @"/uptool/uptool.exe",Application.StartupPath   +   "//UpTool",parms,ProcessWindowStyle.Normal))   
  {   
  Environment.Exit(0);   
  }   
----------------------------------------------------------------------------------------------------------------------
Process.Start("IExplore.exe",   "http://www.newhappy.cn");  
System.Diagnostics.ProcessStartInfo   startInfo   =   new   System.Diagnostics.ProcessStartInfo(   );   
  startInfo.FileName   =   "执行EXE的文件名";   
  startInfo.Arguments   =   "参数数组";   
  System.Diagnostics.Process.Start(   startInfo   );
----------------------------------------------------------------------------------------------------------------------------
1.有好多时,我们需要调用外部的EXE程序,并且要等它运行完毕,我们才可以继续下面的动作,那我们怎样去实现了,请看以下代码.
        '怎样等待外部程序运行完毕.
        '从系统资料夹读入文件
        Dim sysFolder As String = _
                    Environment.GetFoldERPath(Environment.SpecialFolder.System)
        '创建一个新的进程结构
        Dim pInfo As New ProcessStartInfo()
        '设置其成员FileName为系统资料的Eula.txt
        pInfo.FileName = sysFolder & "/eula.txt"
        '运行该文件
        Dim p As Process = Process.Start(pInfo)
        '等待程序装载完成
        p.WaitForInputIdle()
        '等待进行程退出
        p.WaitForExit()
        '继续执行下面的代码
        MessageBox.Show("继续执行代码")

2.我们想在5秒钟后,强行关闭它.而不是需要我手工关闭.
    '设置退出时间
    Dim timeOut As Integer = 5000
    Dim sysFolder As String = _
         Environment.GetFolderPath(Environment.SpecialFolder.System)
    Dim pInfo As New ProcessStartInfo()
    pInfo.FileName = sysFolder & "/eula.txt"
    Dim p As Process = Process.Start(pInfo)
    p.WaitForInputIdle()
    p.WaitForExit(timeOut)
    '检查是否在超时前已关闭了.
    If p.HasExited = False Then
        '进行程还在运行
        '看进程有没有回应
        If p.Responding Then
            p.CloseMainWindow() '关闭窗口
        Else
            p.Kill()  '强行中断
        End If
    End If
    MessageBox.Show("继续执行代码")

在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>的更多相关文章

  1. iOS 如何在一个应用程序中调用另一个应用程序

    原则上iOS的沙箱原理,是阻止一个app去访问其他app的资源乃至是系统底层的资源的但是我们可以通过一种变相的方式:通过对应的URL模式和其他程序进行通讯. iOS应用之间的调用步骤: 一, 调用自己 ...

  2. Win32程序支持命令行参数的做法(转载)

    转载:http://www.cnblogs.com/lanzhi/p/6470406.html 转载:http://blog.csdn.net/kelsel/article/details/52759 ...

  3. Win32程序支持命令行参数的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 首先说说Win 32 API程序如何支持命令行参数.Win 32程序的入口函数为: int APIENTRY _tWi ...

  4. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  5. 在一个apk中调用另外一个apk中的activity

    今天忽然想到如果要在一个activity中调用另外一个activity该怎么办呢? 感觉这个应该比较简单,应为activity的启动方式就两种:显式启动.隐式启动: 显式启动的话肯定不行,那就只能使用 ...

  6. (转载)oracle 在一个存储过程中调用另一个返回游标的存储过程

    原文链接:http://www.jb51.net/article/20160.htm 实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法. 第一种情 ...

  7. bug日记之---------js中调用另一个js中的有ajax的方法, 返回值为undefind

    今天做一个OCR授权的需求, 需要开发一个OCR弹框, 让用户选择是否授权给第三方识别公司(旷世科技)保存和识别用户个人信息, 照片等. 其中用到了在一个js的方法中调用另外一个js的方法, 其中有一 ...

  8. [原创]C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

    C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路: 1.在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头 ...

  9. Js文件函数中调用另一个Js文件函数的方法

    在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能.那么如何调用:一个Js文件函数中调用另一个Js文件函数的方法? (直接代码说明) 示例d ...

随机推荐

  1. LLVM language 参考手册(译)(6)

    模块级内联汇编(Module-Level Inline Assembly) 模块包含“module-level inline assembly”块,这与GCC中的“file scope inline ...

  2. UILabel滚动字幕的实现

    经常需要在应用中显示一段很长的文字,比如天气或者广告等,这时候使用滚动字幕的方式比较方便. 参考文献: [1] YouXianMing, 使用UILabel实现滚动字幕移动效果, 博客园 [2] ht ...

  3. 我的总结SVN的使用

    SVN平时在用时,一般要做到早上一次更新,中间每做出一个模块就要提交,就是一次更新,多次提交, SVN在修改公共类,配置文件时一定要注意,如果修改的是配置文件中的东西,这样修改完之后一定要提交, 如果 ...

  4. Oracle中排序列中值相同引发的问题(译)

    This queston came up on the Oracle newsgroup a few days ago: 这个问题在Oracle的新闻中心被提出了一段时间: I have a tabl ...

  5. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  6. C#中linq

    class IntroToLINQ { static void Main() { // The Three Parts of a LINQ Query: // 1. Data source. ] { ...

  7. openerp经典收藏 深入理解报表运行机制(转载)

    深入理解报表运行机制 原文:http://blog.sina.com.cn/s/blog_57ded94e01014ppd.html 1) OpenERP报表的基本运行机制    OpenERP报表的 ...

  8. Android中关于日期时间与时区的使用总结

    在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范.   一.Unix时间戳   Unix时间戳(Unix tim ...

  9. oracle 存储过程编辑 卡死

    一.可用SYS登录, 二.查锁session_ID查找存储过程OPERATIONDATA_IMP被哪些session锁住而无法编译select * FROM dba_ddl_locks where n ...

  10. 首页视频播放jquery

    <script type="text/javascript" src="[!--news.url--]skin/default/js/flowplayer-3.2. ...