zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    LeetCode中等题(三)
    java之使用poi对excel的.xls和.xlsx访问
    JAVA编程-----------40、字符串排序
    JAVA编程------------38、写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
    JAVA编程---------37、n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位。
    JAVA编程--------------36、有n个整数,使其前面各数顺序向后移m个位置最后m个数变成前面m个数
    JAVA编程-------------24、将一组数的最大数放在第一位,最小的数放在最后一位
    JAVA编程------------33、打印杨辉三角
    JAVA编程--------------32、取一个整数的4-7位
    JAVA编程---------------31、将一个数组逆序输出
  • 原文地址:https://www.cnblogs.com/haoliansheng/p/1490779.html
Copyright © 2011-2022 走看看