51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

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

[复制链接]

该用户从未签到

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

如何验证其进程是否存在

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

使用道具 举报

该用户从未签到

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

回复 9# 的帖子

最佳答案
回复 支持 反对

使用道具 举报

该用户从未签到

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  ...

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

使用道具 举报

  • 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 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    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
    呵呵,发一段这个给你吧。。。可以直接调用关闭,如果需要知道是否存在也可以修改下代码。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    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 ...

    回答的不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

    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"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 21:29 , Processed in 0.076290 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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