Terminer une application par programme en utilisant un chemin de fichier dans vb.net
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?
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