2016-10-24 4 views
-1
Process[] processList1 = Process.GetProcesses(); 
int size = processList1.Length; 

MessageBox.Show("" + processList1[size - 1]); 
+3

was meinst du mit dem letzten laufenden Prozess? Prozess, der zuerst oder zuletzt ausgeführt wird? –

+0

der letzte Prozess vom PC –

Antwort

1

bekommen Wenn Sie sich über den neuesten Prozess sprechen, können Sie das erreichen, indem er die Liste nach Startzeit der Bestellung:

Process mostRecent = Process.GetProcesses().OrderBy(p => p.StartTime).Last(); 
0

starten:

public partial class Form1 : Form 
{ 
    Process[] processList1; 
    public Form1() 
    { 
     InitializeComponent(); 
     processList1 = Process.GetProcesses(); 
    } 
    //set timer1.Interval to 5000 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     foreach (Process item in Process.GetProcesses()) 
     { 
      if (!processList1.Contains(item)) 
      { 
       //get all new Processes 
      } 
     } 
     processList1 = Process.GetProcesses(); 
    } 
} 
0

Verwenden Sie diesen Code. Dieser Code ruft alle Prozesse ab und vergleicht das Startdatum. Wenn Sie einen neuen Prozess öffnen, wird der Name in label1 angezeigt, der in Ihrem Formular enthalten sein sollte.

private void timer1_Tick(object sender, EventArgs e) 
    { 
     System.Diagnostics.Process[] processList1 = System.Diagnostics.Process.GetProcesses(); 
     DateTime min = processList1[0].StartTime; 

     Process last = new Process(); 
     foreach (Process a in processList1) 
     { 

      try 
      { 
       if (DateTime.Compare(a.StartTime, min) >= 0) 
       { 
        last = a; 
        min = a.StartTime; 
       } 

      } 
      catch (Exception) 
      { 

      } 

     } 
     label1.Text = last.ProcessName; 
    } 
+0

Ja, das ist wahr, und aus diesem Grund versuchen und fangen wird verwendet. nur zugängliche Prozesse können ausgewertet werden. Beim Sortieren ignoriert dieses Modell die Ausnahme "Zugriff verweigert" und bei anderen Prozessen funktioniert es. –

Verwandte Themen