C# 如何唯一地标识流程
我有一个.net wpf应用程序,其exe名称为TestTool 我想从一个单独的应用程序中掌握这个过程。我过去常常得到 使用进程名称的进程。代码如下:C# 如何唯一地标识流程,c#,process,C#,Process,我有一个.net wpf应用程序,其exe名称为TestTool 我想从一个单独的应用程序中掌握这个过程。我过去常常得到 使用进程名称的进程。代码如下: var process = Process.GetProcessesByName("TestTool"); 现在,我担心的是,如果有其他exe以相同的名称运行,那么我可能会 遇到一个我得到错误流程的场景 是否有一种方法可以唯一地标识我的测试工具流程 感谢您的帮助您可以检查文件名: Process.GetProcessesByName("T
var process = Process.GetProcessesByName("TestTool");
现在,我担心的是,如果有其他exe以相同的名称运行,那么我可能会
遇到一个我得到错误流程的场景
是否有一种方法可以唯一地标识我的测试工具流程
感谢您的帮助您可以检查文件名:
Process.GetProcessesByName("TestTool").MainModule.FileName;
或者你可以:
- 循环冗余校验
- 检查文件的版本信息
- 检查同一路径中的额外文件
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");
}