vb.net - 使用 vb.net 中的文件路径以编程方式终止应用程序

标签 vb.net terminate

我想通过 vb.net 使用完整文件路径终止应用程序,但在“进程”下找不到它。我希望有一个简单的 Process.Stop(filepath),就像 Process.Start 一样,但没有这样的运气。

我该怎么做?

最佳答案

您必须查看每个进程的 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());

编辑:更新了代码以在字符串比较时考虑区分大小写。

关于vb.net - 使用 vb.net 中的文件路径以编程方式终止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402126/

相关文章:

mysql - vb.net - Mysql 连接未使用 Sub 例程关闭

javascript - 在将文本添加到文本框后添加新行

java - 这是退出应用程序的正确方法吗?

powershell - 在Powershell中转义args [0]

ios - 有没有办法通知服务器应用程序已终止?

asp.net - 对于如何使用 VB.NET 在 ASP.NET 中创建按钮单击事件,为什么选择私有(private)与 protected ?

vb.net - 如何使我的 VB.NET 表单应用程序启动方法成为 Program.vb 中的 Sub Main()?

asp.net - .NET 4.6.2 引入的 System.Web.Globalization 命名空间在运行时与 System.Globalization 发生冲突

c - 如何使这个后台运行的代码只用一个 kill 命令终止?

C++ 不同线程在 FreeBSD 10 上具有相同的线程 ID