Debería tener en cuenta la propiedad Módulos de cada proceso y, a su vez, verificar los nombres de los archivos con la ruta deseada.
He aquí un ejemplo:
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: actualizan el código para tomar mayúsculas y minúsculas en cuenta para la comparación de cadenas .
¿Por qué tomaría en serio a un hombre cuyo perfil dice que es de Antartica y está haciendo un MMORPG que estará disponible para su compra pronto. Por cierto, no terminas las aplicaciones a través de sus rutas de archivos. En su lugar, utiliza el nombre del proceso que generalmente es el nombre del archivo ejecutable. –
La cosa de la Antártida es una broma, el MMORPG no está a la venta, mi último trabajo (software, sin relación con el mmo) estará pronto a la venta. ¿Por qué debería tomar en serio a un hombre que no puede tomar una pequeña broma? Sé que no terminas las aplicaciones a través de sus rutas de archivos, pero estoy preguntando cómo hacerlo. – Cyclone