【摘自网上】C# 中类似Excute的方法

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://community.csdn.net/Expert/topic/4021/4021327.xml?temp=.9493524");  

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("继续执行代码")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值