风雪夜归人 发表于 2009-9-9 11:29:38

关于QTP10根据句柄最大化ie的问题

在QTP9.2中,获取IE句柄有两种方法(据我所知)
Browser("xxx").GetRoProperty("hwnd")
Browser("xxx").Object.HWND
而且,两种方法取出来得结果是一样的

当我使用QTP10.0的时侯,发现这两种方法取出来的结果不同了,如果把浏览器定义为Window( 比如说得到句柄,然后最大化ie)就需要使用.object.HWND的方法.可是,有的情况下,第二种方法取不到句柄,这时候,我如果要最大化ie,应该怎么做?麻烦大家提供个思路,谢谢

月上百合 发表于 2009-9-9 11:34:05

楼上的你是怎么学习QTP的呀

风雪夜归人 发表于 2009-9-9 11:39:16

慢慢学,我貌似没有系统的学习过,用到什么就看什么~汗!

风雪夜归人 发表于 2009-9-9 11:41:35

很多情况下都是看帮助,有的函数或者什么的用法简直就是蒙的~可是蒙对了就好~给提供个思路嘛~
Window("text:=xxx").Maximize这个我用了,不过好像不行~

mklodoss 发表于 2009-9-9 12:19:28

第二种方法取到句柄和第一个方法取到的值不一样吗?如果是同一个浏览器的话应该是一样的。句柄在窗口关闭后重新打开是会变的哟。即使是同一个窗口。会不会是这个问题?

风雪夜归人 发表于 2009-9-9 12:23:25

不是,明显不是,ls的,难道你也用QTP10?会不会是我的QTP10装的有问题,我往这个方向考虑了

风雪夜归人 发表于 2009-9-9 12:25:33

Set shell = CreateObject("Shell.Application")
Set shellWindows = shell.Windows

For Each ie In shellWindows
        If   InStr(1,ie.FullName,   "IEXPLORE.EXE",   vbTextCompare)   <>   0 then
                Window("hwnd:=" &ie.HWND).Maximize
        End if
Next


这个方法明显可以,但是是最大化所有的ie,有点不完美~

风雪夜归人 发表于 2009-9-9 12:31:14

Set shell = CreateObject("Shell.Application")
Set shellWindows = shell.Windows
       'msgbox "started"
For Each ie In shellWindows
        If   InStr(1,ie.FullName,   "IEXPLORE.EXE",   vbTextCompare)   <>   0 then
                If Instr(1, Window("hwnd:=" &ie.HWND).GetROProperty("text"), "test.doc", vbTextCompare) <> 0 Then
            Window("hwnd:=" &ie.HWND).Maximize
                End If
        End if
Next

就这样了,我所要最大化的IE的标题里面有个"test.doc",现在问题解决了~
页: [1]
查看完整版本: 关于QTP10根据句柄最大化ie的问题