Encerramento de uma aplicação de programação usando um caminho de arquivo em vb.net
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?
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