Terminando una aplicación programáticamente usando una ruta de archivo en vb.net

StackOverflow https://stackoverflow.com/questions/1402126

  •  05-07-2019
  •  | 
  •  

Pregunta

Quiero terminar una aplicación utilizando la ruta completa del archivo a través de vb.net, pero no la encontré en Proceso. Esperaba un Process.Stop (filepath) fácil, como con Process.Start, pero no tanta suerte.

¿Cómo puedo hacerlo?

¿Fue útil?

Solución

Tendría que mirar en la propiedad de cada módulo de proceso y, a su vez, verificar los nombres de archivo con la ruta deseada.

Aquí hay 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());

EDITAR: actualizó el código para tener en cuenta la sensibilidad a las mayúsculas y minúsculas en las comparaciones de cadenas.

Otros consejos

prueba

System.Diagnostics.Process.GetProcessesByName (nameOfExeFile) .First (). Kill ()

Esto ignora la ruta del archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top