C# 如何在C中获取已启动应用程序的PID#
我有几对相同的应用程序 看起来像 第1对:应用程序A+应用程序B 第2对:应用程序A+应用程序B 等等 每个应用程序A从其文件夹启动应用程序B。(它们都在同一个文件夹中。) 所以我就这样开始 应用程序A的代码C# 如何在C中获取已启动应用程序的PID#,c#,.net,process,C#,.net,Process,我有几对相同的应用程序 看起来像 第1对:应用程序A+应用程序B 第2对:应用程序A+应用程序B 等等 每个应用程序A从其文件夹启动应用程序B。(它们都在同一个文件夹中。) 所以我就这样开始 应用程序A的代码 Process p = new Process(); p.StartInfo.FileName = FileManager.AppDirectoryName + "\\" + AppB; p.Start(); 我也会像这样停止应用程序B。 foreach (Proce
Process p = new Process();
p.StartInfo.FileName = FileManager.AppDirectoryName + "\\" + AppB;
p.Start();
我也会像这样停止应用程序B。
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName == AppB)
{
p.Kill();
return;
}
}
问题是,同时可能有许多应用程序B正在执行,因此此方法不允许检测要杀死的目标应用程序B
我假设使用App B的PID来杀死它。
但我现在不知道如何获得PID来启动应用程序B
有什么线索吗?启动应用程序后,流程对象上的Id属性将指示新启动流程的PID
var-PID=p.Id代码>启动应用程序后,流程对象上的Id属性将指示新启动流程的PID
var-PID=p.Id代码>保存对流程对象的引用:
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();
保存对流程对象的引用:
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();
使用Id
属性<代码>p.Id
使用Id
属性<代码>p.Id