/// <summary>
/// Process extensions
/// </summary>
public static class ProcessExtensions
{
#region Functions
#region KillProcessAsync
/// <summary>
/// Kills a process
/// </summary>
/// <param name="Process">Process that should be killed</param>
/// <param name="TimeToKill">Amount of time (in ms) until the process is killed.</param>
public static void KillProcessAsync(this Process Process, int TimeToKill = 0)
{
if (Process == null)
throw new ArgumentNullException("Process");
ThreadPool.QueueUserWorkItem(delegate { KillProcessAsyncHelper(Process, TimeToKill); });
}
/// <summary>
/// Kills a list of processes
/// </summary>
/// <param name="Processes">Processes that should be killed</param>
/// <param name="TimeToKill">Amount of time (in ms) until the processes are killed.</param>
public static void KillProcessAsync(this IEnumerable<Process> Processes, int TimeToKill = 0)
{
if (Processes == null)
throw new ArgumentNullException("Processes");
Processes.ForEach(x => ThreadPool.QueueUserWorkItem(delegate { KillProcessAsyncHelper(x, TimeToKill); }));
}
#endregion
#region GetInformation
/// <summary>
/// Gets information about all processes and returns it in an HTML formatted string
/// </summary>
/// <param name="Process">Process to get information about</param>
/// <param name="HTMLFormat">Should this be HTML formatted?</param>
/// <returns>An HTML formatted string</returns>
public static string GetInformation(this Process Process, bool HTMLFormat = true)
{
StringBuilder Builder = new StringBuilder();
return Builder.Append(HTMLFormat ? "<strong>" : "")
.Append(Process.ProcessName)
.Append(" Information")
.Append(HTMLFormat ? "</strong><br />" : "\n")
.Append(Process.DumpProperties(HTMLFormat))
.Append(HTMLFormat ? "<br />" : "\n")
.ToString();
}
/// <summary>
/// Gets information about all processes and returns it in an HTML formatted string
/// </summary>
/// <param name="Processes">Processes to get information about</param>
/// <param name="HTMLFormat">Should this be HTML formatted?</param>
/// <returns>An HTML formatted string</returns>
public static string GetInformation(this IEnumerable<Process> Processes, bool HTMLFormat = true)
{
StringBuilder Builder = new StringBuilder();
Processes.ForEach(x => Builder.Append(x.GetInformation(HTMLFormat)));
return Builder.ToString();
}
/// <summary>
/// Get information of the process name
/// </summary>
/// <param name="Process">Process to get information about</param>
/// <returns></returns>
public static string GetInformation(this Process Process)
{
return Process.ProcessName;
}
/// <summary>
/// Gets information about all processes and returns it in string
/// </summary>
/// <param name="Processes">Processes to get information about</param>
/// <returns>string</returns>
public static string GetInformation(this IEnumerable<Process> Processes)
{
StringBuilder Builder = new StringBuilder();
Processes.ForEach(x => Builder.Append(x.GetInformation()));
return Builder.ToString();
}
#endregion
#endregion
#region Private Static Functions
/// <summary>
/// Kills a process asyncronously
/// </summary>
/// <param name="ProcessName">Name of the process to kill</param>
/// <param name="TimeToKill">Amount of time until the process is killed</param>
private static void KillProcessAsyncHelper(Process Process, int TimeToKill)
{
if (TimeToKill > 0)
Thread.Sleep(TimeToKill);
Process.Kill();
}
#endregion
}
分享到:
相关推荐
c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序....
Datagridview C# 扩展类
C# Extension(扩展方法),LinqExtensions、类型转换扩展、日期时间扩展、格式化扩展、验证扩展、可空类型
本篇文章是对C#中Process类的使用进行了详细的分析介绍,需要的朋友参考下
process类的使用
用c#代码来控制扩展屏,可以选择方向旋转,方便了扩展屏对于用户的使用;
C# 构建可扩展的应用程序(插件) C#的插件技术。
这里使用C#编程的方法改变文件扩展名的文件,必须使用Path类。 Path类用来解析文件系统路径的各个部分。静态方法Path.ChangeExtension方法可以用来改变文件扩展名。可用Path.GetExtension方法可用来取得的文件扩展名...
process类 任务管理器 完整c#代码源码 里面含有新建任务 结束任务 资源管理 进程加载 最小化 代码浏览等功能 c#process类编写出来
最全的C#常用开发类,cs文件,使用起来非常方便。大约有100多个常用类,
AIR NativeExtension 扩展C#/C++类
C#调用process执行DOS命令,间接调用其他软件或进程
想必每个程序员都对Shell Extension不会感到陌生吧,在这里我不想花太多的时间介绍Shell Extension的原理知识,本文中将通过一个实例介绍用C#创建一个Shell Extension,在此过程中也会简单介绍一些Shell Extension的...
c#利用进程(Process)调用系统应用程序源码,如调用计算机,画画,记事本....等等系统应用程序
C# 可扩展式EXCEL解析工具 C# 可扩展式EXCEL解析工具 C# 可扩展式EXCEL解析工具
1、利用SoapExtension,SoapExtensionAttribute,实现Soap自定义Attribute(标签)扩展类。 2、利用SoapHeader应用Soap扩展。 3、在写WebService时只需加认证标签,客户端调用时传入SoapHeader,即可完成认证。 4、...
C#常用类型转换扩展 common type conversion extension
扩展Eulid算法 用C#编写的 已测试,可以使用=v=
开发日常使用帮助类扩展方法,仅供学习使用。。直接引用扩展使用