Encerramento de uma aplicação de programação usando um caminho de arquivo em vb.net

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu quero encerrar um aplicativo usando o caminho completo do arquivo via vb.net, mas eu não poderia encontrá-lo em Processo. Eu estava esperando por uma Process.Stop fácil (filepath), como com Process.Start, mas não tive essa sorte.

Como posso fazê-lo?

Foi útil?

Solução

Você tem que olhar para cada processo Módulos de propriedade, e, por sua vez, verifique os nomes de arquivos contra o seu caminho desejado.

Aqui está um exemplo:

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:. atualizou o código para tomar maiúsculas e minúsculas em conta para comparações de strings

Outras dicas

try

System.Diagnostics.Process.GetProcessesByName (nameOfExeFile) .primeira (). Mate ()

Este ignora o caminho do arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top