Methode zum Überprüfen und Beenden einer Anwendung

Während der Entwicklung einer Update-Anwendung bin ich auf das Problem gestoßen, dass ich überprüfen muss, ob eine Anwendung noch läuft. Weiterhin ist es „schick“ diese dann auch aus der Update-Anwendung schließen zu können. Folgende Methoden verwende ich dafür.

Um zu überprüfen ob eine Anwendung läuft:

/// <summary>
/// Überprüft ob eine Anwendung bereits läuft.
/// </summary>
/// <param name="applicationName">Anwendungsname.</param>
/// <returns>Läuft bereits.</returns>
public static bool IsApplicationAlreadyRunning(string applicationName)
{
    return System.Diagnostics.Process.GetProcessesByName(applicationName).Length > 0;
}

Um eine Anwendung zu beenden/schließen verwende ich folgende Methode:

/// <summary>
/// Versucht alle Instanzen einer Anwendung zu beenden.
/// </summary>
/// <param name="applicationName">Anwendungsname.</param>
/// <param name="killProcess">Gibt an, ob die Anwendung mit der .Kill() Methode beendet werden soll.</param>
public static void CloseApplication(string applicationName, bool killProcess)
{
    System.Diagnostics.Process[] appInstances = System.Diagnostics.Process.GetProcessesByName(applicationName);

    for (int i = 0; i < appInstances.Length; i++)
    {
        try
        {
            if (killProcess)
                appInstances[i].Kill();
            else
                appInstances[i].Close();
        }
        catch { }
    }
}