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

时间:2015-10-07 00:55:22

标签: vbscript dos title hta taskkill

我有一个带文件路径的HTA文件:C:\ Users \ ME \ Desktop \ DataTable.hta,其窗口标题为 DataTable ,在其代码中使用<title>DataTable</title> <声明/ p>

我试图使用DOS,javascript或vbscript关闭这个特定的HTA窗口。但是,当我尝试以下列方式使用taskkill时,它并没有关闭。它适用于记事本和其他窗口,但不适用于HTA。

我输入dos:

taskkill /FI "WINDOWTITLE eq DataTable

没有任何反应。但如果我使用:

taskkill /FI "WINDOWTITLE eq Untitled - Notepad

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

谢谢。

1 个答案:

答案 0 :(得分:2)

我们假设您使用此名称运行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
'**********************************************************************************************