51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2356|回复: 10
打印 上一主题 下一主题

[原创] [求助]关闭软件后如何验证其进程是否退出(已解决)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-3-2 11:33:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假如..我关闭软件
但是其进程并没有退出

如何验证其进程是否存在

[ 本帖最后由 fanliukund 于 2010-5-4 09:39 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-3-2 11:47:32 | 只看该作者
使用VBS查找进程,网上很多
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-3-2 14:00:54 | 只看该作者
VBS的wmi,进程列表中查看进程是否依然存在
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-3-2 15:01:46 | 只看该作者
网上的都不清不楚的..
谁能给个精简版的...

例如检测QQ.exe
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-3-2 16:37:36 | 只看该作者
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"
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-3-2 21:00:51 | 只看该作者
汗流满脸
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-3-3 09:38:07 | 只看该作者
原帖由 风雪夜归人 于 2010-3-2 16:37 发表
strComputer = "."
strProcessName = "notepad.exe"

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

Set wbemProcess = wbemServices.InstancesOf("Win32_Process")

For Each ...

回答的不错
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-3-3 13:00:37 | 只看该作者
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
呵呵,发一段这个给你吧。。。可以直接调用关闭,如果需要知道是否存在也可以修改下代码。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2010-3-8 16:57:12 | 只看该作者
    '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 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2010-3-8 21:03:46 | 只看该作者
    原帖由 feiyunkai 于 2010-3-8 16:57 发表
    'LZ问的是怎样验证关闭软件后,对应的进程是否一起关闭,而不是要关闭该进程。下面以关闭QQ软件后,验证QQ.EXE进程是否结束为例,函数如下:
    CALL pro_find("QQ.EXE")

    Public Function pro_find(pro_name)
    set  ...

    这样就简单多了..免得一个进程一个进程查看
    有一个进程就有一个报告
    呵呵,非常谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2010-3-8 21:05:37 | 只看该作者

    回复 9# 的帖子

    最佳答案
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-20 20:25 , Processed in 0.075847 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表