我喜欢使用VBScript结束进程。 不幸的是,我只找到了作者描述如何杀死这个过程的例子。
我想请求结束。所以objProcess.Terminate()无济于事。
我正在使用具有管理员权限的Windows XP SP3。
任何想法?
谢谢!
答案 0 :(得分:0)
您可以按照MSDN所述尝试 CloseMainWindow
和Close
方法,例如:
Sub KillingMeSoftly(processName)
'partly copied from http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/processes/
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & processName & "'")
For Each objProcess in colProcessList
objProcess.CloseMainWindow
objProcess.Close
Next
End Sub
这是一个糟糕的答案
<强>更新强>
在搜索答案时,我发现使用// T:nn选项启动脚本会触发对象上的Terminate事件:
class Foo
sub class_terminate
msgbox "Gracefull termination"
' Put your own termination code here.
end sub
end class
dim bar
set bar = new Foo
do
loop ' makes the script run forever
将其另存为c:\endless.vbs
运行此脚本永远不会触发终止事件,因为它将在无限循环中挂起,但如果您以超时启动脚本,它将会;从命令提示符启动脚本:
C:\>wscript endless.vbs //T:5
你会在5秒后看到一个带有&#34; Gracefull终止的消息框&#34;出现。
如果您想在一定时间后退出脚本并且如果它本身没有结束则运行清理,这将非常有用。我不知道这是否涵盖了您要搜索的解决方案。
答案 1 :(得分:-1)
所以,最后我找到了解决问题的方法,但是使用VBS并没有解决。 编写了一个程序来向任何名为“SendSignal”的进程发送CTRL-BREAK。我之前尝试过这个,但我的所有进程都是响应,这是一个错误消息,它一直在运行。
我改变了这个程序发送CTRL + C.在此之后,我能够轻轻地关闭我的Javaw过程。
感谢所有人,感谢您的帮助!