在c#中调用另一个应用程序(.exe 带参数)

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

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用C#窗体应用程序编写的简单游戏,它包含多个页面: 1. 创建一个新的 Windows 窗体应用程序项目。 2. 在 Visual Studio 打开 MainForm.cs 文件,并将其重命名为 GameForm.cs。 3. 在 GameForm.cs 添加一个 TabControl 控件,将其 Dock 属性设置为 Fill。 4. 在 TabControl 添加两个选项卡,分别命名为 "Game" 和 "Settings"。 5. 在 "Game" 选项卡添加一个 PictureBox 控件,并将其 Dock 属性设置为 Fill。 6. 在 "Settings" 选项卡添加一些控件,例如 CheckBox、RadioButton、ComboBox 等,用于设置游戏参数。 7. 在 GameForm.cs 添加一个名为 StartGame 的方法,用于启动游戏。 8. 在 StartGame 方法,使用 Graphics 类绘制游戏界面,并添加游戏逻辑。 9. 在 GameForm.cs 添加一个名为 SaveSettings 的方法,用于保存游戏设置。 10. 在 SaveSettings 方法,将游戏设置保存到配置文件。 11. 在 GameForm.cs 添加一个名为 LoadSettings 的方法,用于加载游戏设置。 12. 在 LoadSettings 方法,从配置文件加载游戏设置,并更新控件的值。 13. 在 GameForm.cs 添加一个名为 GameForm_Load 的方法,用于在窗体加载时初始化游戏设置。 14. 在 GameForm_Load 方法调用 LoadSettings 方法,加载游戏设置。 15. 在 GameForm.cs 添加一个名为 GameForm_FormClosing 的方法,用于在窗体关闭时保存游戏设置。 16. 在 GameForm_FormClosing 方法调用 SaveSettings 方法,保存游戏设置。 17. 在 Main 方法,创建一个新的 GameForm 对象,并将其作为主窗体运行。 这样,就可以创建一个有多个页面的游戏窗体应用程序。您可以在 "Game" 选项卡添加游戏界面和逻辑,而在 "Settings" 选项卡添加游戏设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值