2012-07-09 60 views
0

我期待做一個簡短的JavaScript代碼,殺死我的Windows機器上運行的進程(我正在開發7程序,但它必須在服務器2003生產時運行)。我已經開始使用下面的代碼:JavaScript過程殺死通過名字

w = new ActiveXObject("WScript.Shell"); 
w.run("taskkill.exe /im iexpore.exe"); 
return true; 

我需要使這個進程被殺死,但我通過了。有很多不同的東西可以殺死,而且我有另外一個程序來決定殺死的人。

我現在有下面的代碼,但它仍然不工作:

Dim prcid 
Dim check 
Dim Inp 
Set Inp = WScript.Arguments 
check=0 
Set objService = GetObject("winmgmts:") 

For Each Process In objService.InstancesOf("Win32_process") 
    If process.name= "Inp" Then 
    prcid=process.processid 
    check=1 
    Exit For 
    End If 
Next 

If check =0 Then 
    WScript.Quit [ExitCode] 
End if 

For Each process In objService.InstancesOf("Win32_process") 
    If process.name= "Inp" Then 
    If process.processid=prcid Then 
     strComputer = "." 
     Set objWMIService = GetObject("winmgmts:" _ 
      & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
     Set colProcessList = objWMIService.ExecQuery _ 
      ("SELECT * FROM Win32_Process WHERE Name = 'Inp'") 
     For Each objProcess in colProcessList 
      objProcess.Terminate() 
     Next 
    End If 

    Exit For 
    End If 
Next 

回答

0

我假設你使用的是Windows腳本宿主。

您可以訪問這些參數,以你的腳本是這樣的:

objArgs = WScript.Arguments; 
for (i = 0; i < objArgs.length; i++) 
{ 
    WScript.Echo(objArgs(i)); 
} 

我想你也需要通過你想殺死作爲參數傳遞給腳本的進程。

T.

+0

隨着程序我必須與(自動化任何地方)集成這個我只能訪問1 .js文件並傳入參數。那麼,你所說的話如何符合這一點?對不起,我只是不是很熟悉js – user1512885 2012-07-09 19:28:02

+0

這個例子代碼會循環你提供給.js文件的參數並寫出來。在你的情況下,你不會僅僅想寫出來,而是使用它們爲w.run()構造正確的字符串。 – tomdemuyt 2012-07-09 19:29:24