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; } } } }