Vous devez examiner la propriété Modules de chaque processus et, à son tour, vérifier les noms de fichiers par rapport au chemin souhaité.
Voici un exemple:
VB.NET
Dim path As String = "C:\Program Files\Ultrapico\Expresso\Expresso.exe"
Dim matchingProcesses = New List(Of Process)
For Each process As Process In process.GetProcesses()
For Each m As ProcessModule In process.Modules
If String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) = 0 Then
matchingProcesses.Add(process)
Exit For
End If
Next
Next
For Each p As Process In matchingProcesses
p.Kill()
Next
C#
string path = @"C:\Program Files\Ultrapico\Expresso\Expresso.exe";
var matchingProcesses = new List<Process>();
foreach (Process process in Process.GetProcesses())
{
foreach (ProcessModule m in process.Modules)
{
if (String.Compare(m.FileName, path, StringComparison.InvariantCultureIgnoreCase) == 0)
{
matchingProcesses.Add(process);
break;
}
}
}
matchingProcesses.ForEach(p => p.Kill());
EDIT: mis à jour le code pour prendre la casse en compte pour les comparaisons de chaînes .
Pourquoi devrais-je prendre au sérieux un gars dont le profil dit qu'il vient d'Antartica et est en train de fabriquer un MMORPG qui sera bientôt disponible à l'achat. BTW, vous ne terminez pas les applications à travers leurs chemins de fichiers. Au lieu de cela, vous utilisez le nom du processus qui est généralement le nom du fichier exécutable. –
La chose antarctique est une blague, le MMORPG n'est pas à vendre, mon dernier travail (logiciel, sans rapport avec le mmo) sera bientôt à vendre. Pourquoi devrais-je prendre au sérieux un gars qui ne peut pas prendre une petite blague? Je sais que vous ne terminez pas les applications via leur chemin de fichier, mais je vous demande comment procéder. – Cyclone