[求助]关闭软件后如何验证其进程是否退出(已解决)
假如..我关闭软件但是其进程并没有退出
如何验证其进程是否存在
[ 本帖最后由 fanliukund 于 2010-5-4 09:39 编辑 ] 使用VBS查找进程,网上很多 VBS的wmi,进程列表中查看进程是否依然存在 网上的都不清不楚的..
谁能给个精简版的...
例如检测QQ.exe strComputer = "."
strProcessName = "notepad.exe"
Set wbemServices = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")
Set wbemProcess = wbemServices.InstancesOf("Win32_Process")
For Each myProcess In wbemProcess
If InStr(1, LCase(myProcess.Name), strProcessName, vbTextCompare) <> 0 Then
‘myProcess.Terminate ’关闭当前查找程序
MsgBox "Find process: " & strProcessName
End If
Next
如果需要关闭程序,在QTP下有个最简单的方法
SystemUtil.CloseProcessByName "process name" :L :L :L 汗流满脸 原帖由 风雪夜归人 于 2010-3-2 16:37 发表 http://bbs.51testing.com/images/common/back.gif
strComputer = "."
strProcessName = "notepad.exe"
Set wbemServices = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")
Set wbemProcess = wbemServices.InstancesOf("Win32_Process")
For Each ...
回答的不错:loveliness: Public Function Close_Session(session_name)
'msgbox session_name
Dim objWMIService, objProcess, colProcessList
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Dim sel_var
sel_var="SELECT * FROM WIN32_PROCESS WHERE NAME='" &session_name & "'"
'msgbox sel_var
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM WIN32_PROCESS WHERE NAME='" & session_name &"' ")
For Each objProcess In colProcessList
objProcess.Terminate
Next
End Function
呵呵,发一段这个给你吧。。。可以直接调用关闭,如果需要知道是否存在也可以修改下代码。 'LZ问的是怎样验证关闭软件后,对应的进程是否一起关闭,而不是要关闭该进程。下面以关闭QQ软件后,验证QQ.EXE进程是否结束为例,函数如下:
CALL pro_find("QQ.EXE")
Public Function pro_find(pro_name)
set w=getobject("winmgmts:")
set pro=w.execquery("select * from win32_process where name='"+pro_name+"'") '查找pro_name进程
If pro.count<>0 then
msgbox "该进程尚未关闭" '如果正在运行的pro_name进程数量不等于0,则说明该进程尚未关闭
else
Msgbox "该进程已关闭" '等于0,则说明该进程已关闭
End If
set pro=nothing '释放对象
set w=nothing '释放对象
End Function
[ 本帖最后由 feiyunkai 于 2010-3-8 17:11 编辑 ] 原帖由 feiyunkai 于 2010-3-8 16:57 发表 http://bbs.51testing.com/images/common/back.gif
'LZ问的是怎样验证关闭软件后,对应的进程是否一起关闭,而不是要关闭该进程。下面以关闭QQ软件后,验证QQ.EXE进程是否结束为例,函数如下:
CALL pro_find("QQ.EXE")
Public Function pro_find(pro_name)
set...
这样就简单多了..免得一个进程一个进程查看
有一个进程就有一个报告
呵呵,非常谢谢
回复 9# 的帖子
最佳答案
页:
[1]