2012-12-19 59 views
1

我目前有一些AutoIT代码会终止远程计算机上的进程,但我需要找到一种方法来添加检查以查看进程是否先运行。花了一些时间筛选AutoIT论坛和谷歌之后,我很茫然。以下是我目前有:AutoIT检查如果进程在远程PC上运行

Func EndProc() 
$oWMIService = ObjGet("winmgmts:\\" & $ipAddress & "\root\CIMV2") 

If Not IsObj($oWMIService) Then 
    MsgBox(48, "ERROR", "Couldn't locate the computer. Please make sure you've selected the correct computer and try again.") 
    Return 
EndIf 

Dim $handle, $colProc, $cProc 
$cProc = $oWMIService.ExecQuery('SELECT * FROM Win32_Process WHERE Name = "' & $ProcessToKill & '"') 

For $oProc In $cProc 
    $oProc.Terminate() 
Next 
If $handle Then 
    Return $handle 
Else 
    Return 0 
EndIf 
EndFunc ; Func EndProc() 
+0

您是否在寻找是否有效的确认?还是有改进的建议?请澄清。 –

+0

我道歉我不清楚。我知道上面的代码有效。我正在查看是否有人可以帮助我添加一个检查,看看我想杀死的进程是否先运行,然后再尝试终止进程。那有意义吗? – JJennings

回答

1

您可能要检查出的例子here,有许多不同的方式来使用WMI通过AutoIt的检索对那些你远程和过滤器运行的进程的列表关心。

或者,通过AutoIT调用PSList也可以证明有用。

+0

这让我失去了正确的道路,我很欣赏它。谢谢保罗。 – JJennings

相关问题