2015-10-07 56 views
0

我與文件路徑的HTA文件殺死特定的HTA:C:\用戶\ ME \桌面\ DataTable.hta其中有的DataTable窗口標題使用<title>DataTable</title>如何基於窗口的標題

其代碼中聲明

我想使用DOS,JavaScript或VBScript關閉這個特定的HTA窗口。但是,當我嘗試以下面的方式使用taskkill時,它不會關閉。它適用於記事本和其他窗口,但不適用於HTA。

我鍵入此進入DOS:

taskkill /FI "WINDOWTITLE eq DataTable 

並沒有任何反應。然而,如果我使用:

taskkill /FI "WINDOWTITLE eq Untitled - Notepad 

它成功關閉記事本。 HTA爲什麼不起作用?有解決方案嗎?

謝謝。

回答

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 
'********************************************************************************************** 
+1

但OP希望通過標題終止,而不是由文件名... – Teemu

+1

這個解決方案可以適用於對我的工作。我真的很喜歡我不需要使用完整的文件路徑,而只需要文件名+擴展名。非常動態和有用。哈克,你贏了!非常感謝。 – Mathomatic

相關問題