zoukankan      html  css  js  c++  java
  • C# 启动外部程序的几种方法

    C# 启动外部程序的几种方法:
    1. 启动外部程序,不等待其退出。
    2. 启动外部程序,等待其退出。
    3. 启动外部程序,无限等待其退出。
    4. 启动外部程序,通过事件监视其退出。

        // using System.Diagnostics;
        private string appName = "calc.exe";

        
    /// <summary>
        
    /// 1. 启动外部程序,不等待其退出
        
    /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            Process.Start(appName);
            MessageBox.Show(String.Format(
    "外部程序 {0} 启动完成!"this.appName), this.Text, 
                MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        
    /// <summary>
        
    /// 2. 启动外部程序,等待其退出
        
    /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            
    try
            {
                Process proc 
    = Process.Start(appName);
                
    if (proc != null)
                {
                    proc.WaitForExit(
    3000);
                    
    if (proc.HasExited)
                        MessageBox.Show(String.Format(
    "外部程序 {0} 已经退出!"this.appName), this.Text, 
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                    
    else
                    {
                        
    // 如果外部程序没有结束运行则强行终止之。
                        proc.Kill();
                        MessageBox.Show(String.Format(
    "外部程序 {0} 被强行终止!"this.appName), this.Text, 
                            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            
    catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, 
    this.Text, 
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


        
    /// <summary>
        
    /// 3. 启动外部程序,无限等待其退出
        
    /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            
    try
            {
                Process proc 
    = Process.Start(appName);
                
    if (proc != null)
                {
                    proc.WaitForExit();
                    MessageBox.Show(String.Format(
    "外部程序 {0} 已经退出!"this.appName), this.Text, 
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            
    catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, 
    this.Text, 
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


        
    /// <summary>
        
    /// 4. 启动外部程序,通过事件监视其退出
        
    /// </summary>
        private void button4_Click(object sender, EventArgs e)
        {
            
    try
            {
                
    // 启动外部程序
                Process proc = Process.Start(appName);
                
    if (proc != null)
                {
                    
    // 监视进程退出
                    proc.EnableRaisingEvents = true;
                    
    // 指定退出事件方法
                    proc.Exited += new EventHandler(proc_Exited);
                }
            }
            
    catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, 
    this.Text, 
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
        
    /// <summary>
        
    /// 外部程序退出事件
        
    /// </summary>
        void proc_Exited(object sender, EventArgs e)
        {
            MessageBox.Show(String.Format(
    "外部程序 {0} 已经退出!"this.appName), this.Text, 
                MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

    本文地址:http://www.cnblogs.com/anjou/archive/2007/06/15/783993.html
  • 相关阅读:
    <html:form>里的<html:password property="password"/>中的property
    关于validate
    ActionForm的详解
    Struts控制流
    Action的详解
    formValidate输入验证
    在JS里面,取struts的<html:form>标签里面的<html:text property="title"/>值
    ActionMapping的详解
    学习数据结构的网站
    ActionForm本质
  • 原文地址:https://www.cnblogs.com/anjou/p/783993.html
Copyright © 2011-2022 走看看