Завершение приложения программным путем, используя путь к файлу в vb.net - PullRequest
6 голосов
/ 10 сентября 2009

Я хочу завершить приложение, используя полный путь к файлу через vb.net, но я не смог найти его в Process. Я надеялся на легкий Process.Stop (filepath), как с Process.Start, но не повезло.

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 10 сентября 2009

Вам нужно будет просмотреть свойство Modules каждого процесса и, в свою очередь, проверить имена файлов в соответствии с желаемым путем.

Вот пример:

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());

РЕДАКТИРОВАТЬ: обновил код с учетом чувствительности к регистру для сравнения строк.

2 голосов
/ 10 сентября 2009

1001 * попробовать *

System.Diagnostics.Process.GetProcessesByName (nameOfExeFile) .Первый (). Убей ()

При этом игнорируется путь к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...