首页 > 系统相关 >C#-进程相关的工具类

C#-进程相关的工具类

时间:2023-03-16 12:44:20浏览次数:32  
标签:Process C# System process 进程 using 工具 public

/**
*┌──────────────────────────────────────────────────────────────┐
*│ 描    述:进程相关的工具类                                                   
*│ 作    者:执笔小白                                              
*│ 版    本:1.2                                       
*│ 创建时间:2022-10-13 10:40:56                            
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│ 命名空间: Common                               
*│ 类    名:ProcessHelper                                     
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common
{
    public class ProcessHelper
    {
        /// <summary>
        /// 获取当前进程信息
        /// </summary>
        /// <returns></returns>
        public static Process GetCurrentProcess()
        {
            return Process.GetCurrentProcess();
        }

        /// <summary>
        /// 获取当前进程名
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentProcessName()
        {
            return Process.GetCurrentProcess().ProcessName;
        }

        /// <summary>
        /// 开启进程By程序启动文件路径
        /// </summary>
        /// <param name="processName">进程名</param>
        /// <param name="arguments">设置启动程序时使用的命令行自变量</param>
        /// <param name="windowStyle">启动时应用的窗口状态</param>
        public static Process StartProcess(string processPath, string arguments = "", ProcessWindowStyle windowStyle = ProcessWindowStyle.Minimized)
        {
            ProcessStartInfo info = new ProcessStartInfo();
            info.FileName = processPath;
            info.Arguments = arguments;
            info.WindowStyle = windowStyle;
            return Process.Start(info);
        }

        /// <summary>
        /// 正常关闭进程By进程名
        /// </summary>
        /// <param name="processName">进程名</param>
        public static void CloseProcess(string processName)
        {
            foreach (Process process in Process.GetProcessesByName(processName))
            {
                try
                {
                    if (!process.CloseMainWindow())  // 通知正常关闭
                    {
                        process.Kill();         // 强制结束
                        process.WaitForExit();  // 等待退出完成
                    }
                }
                catch { }
            }
        }

        /// <summary>
        /// 强制杀死进程By进程名
        /// </summary>
        /// <param name="processName">进程名</param>
        public static void KillProcess(string processName)
        {
            foreach (Process process in Process.GetProcessesByName(processName))
            {
                try
                {
                    process.Kill();         // 强制结束
                    process.WaitForExit();  // 等待退出完成
                }
                catch { }
            }
        }
    }
}

标签:Process,C#,System,process,进程,using,工具,public
From: https://www.cnblogs.com/qq2806933146xiaobai/p/17222128.html

相关文章

  • ACP云原生容器工程师 - ASM服务网格概述
    概述技术概要第一代服务网格服务网格基础设施层微服务通信保证请求可靠传递隐藏通信细节减少框架耦合预言无关数据平面边车模式通信代......
  • socket 通讯练习 本机已通过
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Net;usi......
  • 什么是OpenStack?
    最近有人问我,现在这个时代基本上算是一个云计算的时代,传统的网络工程师还有出路吗?有!肯定有!虽然现在是云计算的时代,但是我们发展还远没有预想的那么快。2002年亚马逊(Amazon)提......
  • Object.prototype.toString判断类型的原理
    项目中,我们经常会直接使用Object.prototype.toString用来做类型判断。他基本是几种方法里可以开箱即用、且判断类型最完善了。现在我们来扒皮一下他。具体原理在toString......
  • 传统CV算法总结-边缘检测系列
    第一章概述1.边缘检测概述1.1认识边缘边缘的定义边缘是不同区域的分界线,是周围(局部)灰度值有显著变化的像素点的集合,有幅值与方向两个属性。这个不是绝对的定义,边缘是局......
  • 【工具篇】LaTex入门指南
    为啥要学LaText?LaTex一般用在写论文上,你的论文中可能涉及到大量的数学公式,或者你想更好的排版你的论文,那么你来对地方了,这正是LaTex所擅长的地方。LaTex通过一些命令来......
  • Expectation-Maximization algorithm
    1.IntroductionTheExpectation-Maximization(EM)algorithmisawidelyusedstatisticalalgorithmformaximumlikelihoodestimationincaseswherethereismi......
  • Docker离线安装部署
    卸载Docker(没有Docker就跳过)一、准备工作1.杀死docker有关的容器:dockerkill$(dockerps-a-q)2.删除所有docker容器:dockerrm$(dockerps-a-q)3.删除所有doc......
  • Vue.js 绑定class样式
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>绑定样式</title> <style> .basic{ width:400px; height:100px; border:......
  • Scrapy中Request对象的属性和方法
    Scrapy中的Request对象是用于表示一个HTTP请求的类。以下是一些常见的属性和方法:属性:url:请求的URL。callback:在响应返回后,将调用的回调函数。method:请求方法,默......