Terminer une application par programme en utilisant un chemin de fichier dans vb.net

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

  •  05-07-2019
  •  | 
  •  

Question

Je souhaite mettre fin à une application en utilisant le chemin d'accès complet au fichier via vb.net, mais je ne pouvais pas le trouver sous Processus. J'espérais un Process.Stop (chemin du fichier) facile, comme avec Process.Start, mais pas de chance.

Comment puis-je le faire?

Était-ce utile?

La solution

Il vous faudrait examiner la propriété Modules de chaque processus, puis vérifier les noms de fichiers par rapport au chemin souhaité.

Voici un exemple:

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

MODIFIER: le code a été mis à jour afin de prendre en compte la casse lors de la comparaison de chaînes.

Autres conseils

essayer

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

Ceci ignore le chemin du fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top