我有一个带有exe名称TestTool的.net wpf应用程序。
我想从一个单独的应用程序中获取此过程。我曾经得到过 使用进程名称的进程。代码snipet如下:
var process = Process.GetProcessesByName("TestTool");
现在,我担心的是,如果有一些其他exe运行的名称与我相同 我遇到了错误的过程。
有没有办法让我唯一地识别我的TestTool流程?
感谢您的帮助
答案 0 :(得分:1)
您可以检查文件名:
Process.GetProcessesByName("TestTool").MainModule.FileName;
或者你可以这样做:
答案 1 :(得分:0)
尝试使用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");
}