如何根据 window 标题杀死特定的 HTA

How to kill specific HTA based on window title

我有一个文件路径为 C:\Users\ME\Desktop\DataTable.hta 的 HTA 文件,其 window 标题为 DataTable,如其代码中声明的那样<title>DataTable</title>

我正在尝试使用 DOS、javascript 或 vbscript 关闭这个特定的 HTA window。但是,当我尝试以下列方式使用 taskkill 时,它不会关闭。它适用于记事本和其他 windows,但不适用于 HTA。

我在dos中输入:

taskkill /FI "WINDOWTITLE eq DataTable

什么也没发生。然而,如果我使用:

taskkill /FI "WINDOWTITLE eq Untitled - Notepad

成功关闭记事本。为什么它不适用于 HTA?有解决办法吗?

谢谢。

我们假设您是 运行 HTA,名字是:DataTable.hta.

所以,我们可以使用像这样的 vbscript 按名称杀死这个 HTA :

Option Explicit
Call KillProcessbyName("DataTable.hta")
'**********************************************************************************************
Sub KillProcessbyName(FileName)
    On Error Resume Next
    Dim WshShell,strComputer,objWMIService,colProcesses,objProcess
    Set WshShell = CreateObject("Wscript.Shell")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
    For Each objProcess in colProcesses
        If InStr(UCase(objProcess.CommandLine),UCase(FileName)) > 0 Then
            If Err <> 0 Then
                MsgBox Err.Description,VbCritical,Err.Description
            Else
                objProcess.Terminate(0) 
            End if
        End If
    Next
End Sub
'**********************************************************************************************