如何在C#中获取已启动应用程序的PID
How to get PID of started App in C#
我有几对相同的应用程序。
看起来像
Pair 1: App A + App B
Pair 2: App A + App B
and etc
每个应用程序 A 从其文件夹启动应用程序 B。 (它们都在同一个文件夹中。)
所以我就这样开始了
App A的代码
Process p = new Process();
p.StartInfo.FileName = FileManager.AppDirectoryName + "\" + AppB;
p.Start();
我也是这样把App B关掉的
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName == AppB)
{
p.Kill();
return;
}
}
问题在于可能同时执行多个应用程序 B,因此此方法不允许检测要杀死的目标应用程序 B。
我假设使用 App B 的 PID 来杀死它。
但是我现在不知道如何获取PID来启动App B...
有线索吗?
应用启动后,Process对象上的Id属性会表示新启动进程的PID
var PID = p.Id;
保存对 Process 对象的引用:
Process p = new Process();
p.StartInfo.FileName = @"c:\windows\notepad.exe";
p.Start();
// ...
p.Kill();
或者记住它的 PID:
Process p = new Process();
p.StartInfo.FileName = @"c:\windows\notepad.exe";
p.Start();
long pid = p.Id;
// ...
Process.GetProcessById(pid).Kill();
我有几对相同的应用程序。
看起来像
Pair 1: App A + App B
Pair 2: App A + App B
and etc
每个应用程序 A 从其文件夹启动应用程序 B。 (它们都在同一个文件夹中。)
所以我就这样开始了
App A的代码
Process p = new Process();
p.StartInfo.FileName = FileManager.AppDirectoryName + "\" + AppB;
p.Start();
我也是这样把App B关掉的
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName == AppB)
{
p.Kill();
return;
}
}
问题在于可能同时执行多个应用程序 B,因此此方法不允许检测要杀死的目标应用程序 B。
我假设使用 App B 的 PID 来杀死它。 但是我现在不知道如何获取PID来启动App B...
有线索吗?
应用启动后,Process对象上的Id属性会表示新启动进程的PID
var PID = p.Id;
保存对 Process 对象的引用:
Process p = new Process();
p.StartInfo.FileName = @"c:\windows\notepad.exe";
p.Start();
// ...
p.Kill();
或者记住它的 PID:
Process p = new Process();
p.StartInfo.FileName = @"c:\windows\notepad.exe";
p.Start();
long pid = p.Id;
// ...
Process.GetProcessById(pid).Kill();