如何唯一标识流程
本文关键字:标识 唯一 何唯一 | 更新日期: 2023-09-27 17:58:48
我有一个名为TestTool的.net wpf应用程序。
从一个单独的应用程序,我想掌握这个过程。我曾经得到使用进程名称的进程。下面的代码狙击手:
var process = Process.GetProcessesByName("TestTool");
现在,我担心的是,如果有其他与我同名的exe运行遇到一个我处理错误的场景。
有没有一种方法可以让我唯一地识别我的TestTool过程?
感谢您的帮助
您可以检查文件名:
Process.GetProcessesByName("TestTool").MainModule.FileName;
或者你可以做:
- CRC校验
- 检查文件的版本信息
- 检查同一路径中是否有多余的文件
尝试使用Linq来确定进程是否基于进程exe文件位置运行,如以下示例:
var process = Process.GetProcessesByName("Dns_management");
bool pIsRunning = Process.GetProcessesByName("Dns_Management")
.FirstOrDefault(p => p.MainModule.FileName.StartsWith(@"F:'VS_2015_WorkSpace'Projects'DNS_Management'DNS_Management'bin'Debug"))
!= default(Process);
if (pIsRunning == true)
{
foreach (Process p in process)
{
Console.WriteLine(p.ProcessName + " Is Running");
}
}
else
{
Console.WriteLine("The process is not available");
}