簡體   English   中英

如何在C#中獲取啟動的App的PID

[英]How to get PID of started App in C#

我有幾對相同的應用程序。

看起來像

配對1:App A + App B

配對2:App A + App B

等等

每個應用程序A都從其文件夾啟動應用程序B。 (它們都在同一文件夾中。)

所以我這樣開始

應用程式A的程式碼

Process p = new Process();
p.StartInfo.FileName = FileManager.AppDirectoryName + "\\" + AppB;
p.Start();

而且我也這樣停止了AppB。

foreach (Process p in Process.GetProcesses())
{  
    if (p.ProcessName == AppB)
    {
        p.Kill();
        return;
    }
} 

問題在於,同時可能有許多App B正在執行,因此此方法不允許檢測到目標App B被殺死。

我假設使用App B的PID殺死它。 但是我不知道如何在啟動App B時獲取PID ...

有什么線索嗎?

啟動應用程序后,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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM