using System;
using System.Diagnostics;
using System.IO;
namespace Szmedi.Toolkit.Revit.Assists
{
public class ProcessAssists
{
public static void ExploreFile(string filePath)
{
if (File.Exists(filePath))
{
Process proc = new();
proc.StartInfo.FileName = "explorer";
//打开资源管理器
proc.StartInfo.Arguments = @"/select," + filePath;
//选中"notepad.exe"这个程序,即记事本
proc.Start();
}
}
public static void ExploreFolder(string folder)
{
if (Directory.Exists(folder))
{
Process.Start(new ProcessStartInfo(folder) { UseShellExecute = true });
}
}
///
/// 根据“精确进程名”结束进程
///
/// 精确进程名
public static void KillProc(string strProcName)
{
try
{
//精确进程名 用GetProcessesByName
foreach (Process p in Process.GetProcessesByName(strProcName))
{
if (!p.CloseMainWindow())
{
p.Kill();
}
}
}
catch
{
}
}
///
/// 根据 模糊进程名 结束进程
///
/// 模糊进程名
public static void KillProcA(string strProcName)
{
try
{
//模糊进程名 枚举
//Process[] ps = Process.GetProcesses(); //进程集合
foreach (Process p in Process.GetProcesses())
{
Console.WriteLine(p.ProcessName + p.Id);
if (p.ProcessName.IndexOf(strProcName, StringComparison.Ordinal) > -1) //第一个字符匹配的话为0,这与VB不同
{
if (!p.CloseMainWindow())
{
p.Kill();
}
}
}
}
catch
{
}
}
///
/// 判断是否包含此字串的进程 模糊
///
/// 进程字符串
/// 是否包含
public static bool SearchProcA(string strProcName)
{
try
{
//模糊进程名 枚举
//Process[] ps = Process.GetProcesses(); //进程集合
foreach (Process p in Process.GetProcesses())
{
Console.WriteLine(p.ProcessName + p.Id);
if (p.ProcessName.IndexOf(strProcName, StringComparison.Ordinal) > -1) //第一个字符匹配的话为0,这与VB不同
{
return true;
}
}
return false;
}
catch
{
return false;
}
}
///
/// 判断是否存在进程 精确
///
/// 精确进程名
/// 是否包含
public static bool SearchProc(string strProcName)
{
try
{
//精确进程名 用GetProcessesByName
Process[] ps = Process.GetProcessesByName(strProcName);
return ps.Length > 0;
}
catch
{
return false;
}
}
}
}