51Testing软件测试论坛

标题: [求助]关闭软件后如何验证其进程是否退出(已解决) [打印本页]

作者: fanliukund    时间: 2010-3-2 11:33
标题: [求助]关闭软件后如何验证其进程是否退出(已解决)
假如..我关闭软件
但是其进程并没有退出

如何验证其进程是否存在

[ 本帖最后由 fanliukund 于 2010-5-4 09:39 编辑 ]
作者: z_kh    时间: 2010-3-2 11:47
使用VBS查找进程,网上很多
作者: xiaoyaoke    时间: 2010-3-2 14:00
VBS的wmi,进程列表中查看进程是否依然存在
作者: fanliukund    时间: 2010-3-2 15:01
网上的都不清不楚的..
谁能给个精简版的...

例如检测QQ.exe
作者: 风雪夜归人    时间: 2010-3-2 16:37
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"
作者: 风雪夜归人    时间: 2010-3-2 21:00
汗流满脸
作者: yujie6832    时间: 2010-3-3 09:38
原帖由 风雪夜归人 于 2010-3-2 16:37 发表
strComputer = "."
strProcessName = "notepad.exe"

Set wbemServices = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")

Set wbemProcess = wbemServices.InstancesOf("Win32_Process")

For Each ...

回答的不错
作者: z_kh    时间: 2010-3-3 13:00
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
呵呵,发一段这个给你吧。。。可以直接调用关闭,如果需要知道是否存在也可以修改下代码。
作者: feiyunkai    时间: 2010-3-8 16:57
'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 编辑 ]
作者: fanliukund    时间: 2010-3-8 21:03
原帖由 feiyunkai 于 2010-3-8 16:57 发表
'LZ问的是怎样验证关闭软件后,对应的进程是否一起关闭,而不是要关闭该进程。下面以关闭QQ软件后,验证QQ.EXE进程是否结束为例,函数如下:
CALL pro_find("QQ.EXE")

Public Function pro_find(pro_name)
set  ...

这样就简单多了..免得一个进程一个进程查看
有一个进程就有一个报告
呵呵,非常谢谢
作者: fanliukund    时间: 2010-3-8 21:05
标题: 回复 9# 的帖子
最佳答案




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2