51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2901|回复: 12
打印 上一主题 下一主题

[原创] 如何写一个函数关闭指定的IE窗口?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-2-24 11:06:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何写一个函数关闭指定的IE窗口?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-2-24 11:07:35 | 只看该作者
Browser().close
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-2-24 12:34:28 | 只看该作者
Sub CloseIE(strIETitle)
        Set shell = CreateObject("Shell.Application")
        Set shellWindows = shell.Windows
        For Each ie In shellWindows
                If   InStr(1,  ie.FullName,   "IEXPLORE.EXE",   vbTextCompare)   <>   0 then
                        If Instr(1, Window("hwnd:=" &ie.HWND).GetROProperty("text"), strIETitle, vbTextCompare) <> 0 Then
                                SystemUtil.CloseProcessByHwnd ie.HWND
                        End If
                End if
        Next
End Sub


CloseIE "看到的IEtitle“
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-2-24 13:40:34 | 只看该作者
多谢,不过问一下
If   InStr(1,  ie.FullName,   "IEXPLORE.EXE",   vbTextCompare)   <>   0 then
这句为什么要判断呢?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-2-24 14:04:25 | 只看该作者
判断是否为IE,你可以这样试一下效果

Sub CloseIE(strIETitle)
        Set shell = CreateObject("Shell.Application")
        Set shellWindows = shell.Windows
        For Each ie In shellWindows
             Msgbox ie.fullname
        Next
End Sub
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-2-24 14:13:22 | 只看该作者
可是既然是ie.FullName,不就肯定是IEXPLORE.EXE吗?不需要判断吧。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-2-24 14:44:34 | 只看该作者
For Each ie In shellWindows 注意这句话,ie仅仅是我定义的一个在shellWindows里面的一个实体,而不是传说中的internetexplorer,或者说如果我这样定义 For Each aaaa In shellWindows 则用: aaa. FullName
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-2-24 15:16:45 | 只看该作者
知道了,多谢指教。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-2-24 15:34:00 | 只看该作者
但是为什么我用下面的代码,显示的都是IE而没有其他程序呢?
        Set shell = CreateObject("Shell.Application")
        Set shellWindows = shell.Windows
        For Each aaa In shellWindows
             Msgbox aaa.fullname
        Next
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-2-24 16:08:33 | 只看该作者
会有的,只是没有特定的环境而已~
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-2-25 21:04:27 | 只看该作者
InStr 函数用于返回某字符串在另一字符串中第一次出现的位置。
格式如下:
InStr([start, ]string1, string2[, compare])

参数说明
start:可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。

string1:必选项。接受搜索的字符串表达式。

string2:必选项。要搜索的字符串表达式。

compare:可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

设置方法:
compare 参数可以有以下值:
常数                  值                        描述
vbBinaryCompare            0                                          执行二进制比较。
vbTextCompare                1                                              执行文本比较。


返回值
InStr 函数返回以下值:

如果                           InStr 返回
string1 为零长度                    0
string1 为 Null                                        Null
string2 为零长度                   start
string2 为 Null                                       Null
string2 没有找到                    0
在string1 中找到 string2          找到匹配字符串的位置
start > Len(string2)                                  0


实例说明
下面的示例利用 InStr 搜索字符串:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. Returns 9.   
MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). Returns 9.
MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1. Returns 0 ("W" is not found).
注意 InStrB 函数使用包含在字符串中的字节数据,所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-3-15 10:18:51 | 只看该作者
把GetROProperty("text")改成GetROProperty("title"),打开51的首页以及51论坛两个Browser,调用CloseIE("51Testing软件测试网-中国软件测试人的精神家园"),结果把两个browser都关掉了啊,这是怎么回事?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-3-15 12:02:37 | 只看该作者
SystemUtil.CloseProcessByHwnd ie.HWND
这句经常会把整个IE关掉,不知道是怎么回事
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 19:36 , Processed in 0.074687 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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