zoukankan      html  css  js  c++  java
  • 关闭一个进程

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Diagnostics;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 关闭记事本的进程
                CloseNotepad();
            }
    
            /// <summary>
            /// 关闭记事本
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            public static void CloseNotepad()
            {
                on:
                string process = ProcessHelper.CheckProcessName("notepad");
                if (process != string.Empty)
                {
                    ProcessHelper.StopProcess(process);
                    System.Threading.Thread.Sleep(1000);
                    goto on;
                }
            }
        }
    
        public class ProcessHelper
        {
            /// <summary>
            /// 关闭一个进程
            /// </summary>
            /// <param name="processName">进程名</param>
            public static void StopProcess(string processName)
            {
                try
                {
                    foreach (Process thisProc in Process.GetProcessesByName(processName))
                    {
                        //if (!thisProc.CloseMainWindow())
                        //{
                            thisProc.Kill();
                        //}
                    }
                    while (true)
                    {
                        if (!CheckProcessIsExit(processName))
                        {
                            return;
                        }
                    }
                }
                catch (Exception exc)
                {
                    throw exc;
                }
            }
    
            /// <summary>
            /// 检查一个进程是否在运行中
            /// </summary>
            /// <param name="processName">进程名</param>
            /// <returns></returns>
            public static bool CheckProcessIsExit(string processName)
            {
                bool flag = false;
                try
                {
                    foreach (Process thisProc in Process.GetProcesses())
                    {
                        if (thisProc.ProcessName.Equals(processName))
                        {
                            flag = true;
                            break;
                        }
                    }
                }
                catch
                {
                    flag = true;
                }
                return flag;
            }
    
            /// <summary>
            /// 检查一个进程是否在运行中
            /// </summary>
            /// <param name="processName">进程名</param>
            /// <returns></returns>
            public static string CheckProcessName(string processName)
            {
                string flag = "";
                try
                {
                    foreach (Process thisProc in Process.GetProcesses())
                    {
                        if (thisProc.ProcessName.Equals(processName))
                        {
                            flag = thisProc.ProcessName;
                            break;
                        }
                    }
                }
                catch
                {
                    flag = "";
                }
                return flag;
            }
        }
    }
  • 相关阅读:
    .NET技术对软件行业的积极作用
    ADO.NET Entityframework MYSQL provider
    用杯子量水问题通用解法
    详解.NET异步
    说 框架、架构、模式、重构
    谈 三层结构与MVC模式的区别
    面试题一例分享
    LINQ notes2 lambda expression
    毕业论文B.3 DTW算法
    LINQ notes1 intro
  • 原文地址:https://www.cnblogs.com/lusunqing/p/3151199.html
Copyright © 2011-2022 走看看