2016-04-30 3 views
1

Ich habe ein paar Paare der gleichen Apps.Wie bekomme ich PID von gestarteter App in C#

Es sieht aus wie

Paar 1: App A + App B

Paar 2: App A + App B

und etc

Jede App Ein App startet B von seinem Ordner. (Sie sind beide im selben Ordner.)

So beginne ich es wie dieses

Code of App A

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

Und ich auch App B wie diese zu stoppen.

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

Das Problem ist, dass zu töten zur gleichen Zeit ausgeführt wird viele App B könnte so funktioniert diese Methode nicht zulassen, dass Ziel App B erkennen.

Ich nehme an, PID von App B zu verwenden, um es zu töten. Aber ich weiß nicht, wie man PID im Moment erhält, um App B zu starten ...

Irgendwelche Anhaltspunkte?

+1

Verwenden Sie "Id" -Eigenschaft. 'p.Id' – mostafa8026

Antwort

3

Nach dem Start der App, die Id-Eigenschaft auf dem Prozessobjekt zeigt an die PID des neu gestarteten Prozess

var PID = p.Id;

1

Speichern ein Verweis auf das Prozessobjekt:

Process p = new Process(); 
p.StartInfo.FileName = @"c:\windows\notepad.exe"; 
p.Start(); 

// ... 

p.Kill(); 

oder Erinnern Sie sich an seine PID:

Process p = new Process(); 
p.StartInfo.FileName = @"c:\windows\notepad.exe"; 
p.Start(); 

long pid = p.Id; 

// ... 

Process.GetProcessById(pid).Kill();