我的csdn博客地址: http://blog.csdn.net/blizzardlyk

调用Windows的API,在QTP中实现高亮对象的方法

上一篇 / 下一篇  2010-08-25 12:12:42 / 个人分类:QTP

QTP的帮助文档中,展示了如何调用Windows自身的API来实现更灵活的操作。

以下的方法实现在屏幕上高亮一个矩形区域,来突出被测对象的位置。

' Declare necessary APIs

Extern.Declare micHwnd, "GetDesktopWindow", "User32.DLL", "GetDesktopWindow"

Extern.Declare micULong, "GetWindowDC", "User32.DLL", "GetWindowDC", micHwnd

Extern.Declare micInteger, "ReleaseDC", "User32.DLL", "ReleaseDC", micHwnd, micULong

Extern.Declare micULong, "CreatePen", "Gdi32.DLL", "CreatePen", micInteger, micInteger, micDword

Extern.Declare micInteger, "SetROP2", "Gdi32.DLL", "SetROP2", micULong, micInteger

Extern.Declare micULong, "SelectObject", "Gdi32.DLL", "SelectObject", micULong, micULong

Extern.Declare micULong, "DeleteObject", "Gdi32.DLL", "DeleteObject", micULong

Extern.Declare micULong, "GetStockObject", "Gdi32.DLL", "GetStockObject", micInteger

Extern.Declare micULong, "Rectangle", "Gdi32.DLL", "Rectangle", micULong, micInteger, micInteger, micInteger, micInteger

Function HighlightRect (X, Y, W, H, Times)

       ' Get the Desktop DC

       hDC = Extern.GetWindowDC (Extern.GetDesktopWindow)

       ' Create a three pixel wide pen

       hPen = Extern.CreatePen (6, 3, RGB(0, 0, 0)) ' PS_INSIDEFRAME, 3 , RGB(0, 0, 0)

       Extern.SetROP2 hDC, 6 ' hDC, R2_NOT

       Extern.SelectObject hDC, hPen

       ' Use an empty fill

       Extern.SelectObject hDC, Extern.GetStockObject (5) ' NULL_BRUSH

       ' Do the highlight

       For i = 0 to Times * 2 + 1

              Extern.Rectangle hDC, X, Y, X + W, Y + H

              wait 0, 50

       Next

       ' CleanUp

       Extern.ReleaseDC Extern.GetDesktopWindow, hDC

       Extern.DeleteObject hPen

End Function
 

QTP本身也封装了对象的Highlight方法,可以通过object.Highlight 来调用。

 


TAG: QTP 高亮对象

 

评分:0

我来说两句

Open Toolbar