QTP自動化測試權威指南(7)

發表于:2015-11-25來源:uml.org.cn作者:不詳點擊數: 標簽:QTP自動化測試
問題 17-2.如何獲得Windows的環境變量 (注意不是QTP環境變量) 變量聲明Dim s_EnvValue聲明 API GetEnvironmentVariableExtern.Declare micLong,GetEnvironmentVariable,kernel32.dll,GetEn

  問題 17-2.如何獲得Windows的環境變量 (注意不是QTP環境變量)

'變量聲明
Dim s_EnvValue

'聲明 API "GetEnvironmentVariable"
Extern.Declare micLong,"GetEnvironmentVariable","kernel32.dll","GetEnvironmentVariableA", _
micString,micString+micByRef,micLong

'獲取全局變量 "TEMP" 值
Extern.GetEnvironmentVariable "TEMP",s_EnvValue,255 '會得到臨時目錄路徑
MsgBoxs_EnvValue

  問題 17-3.如何使用Windwos API選中Listbox里的選項(item)

' 聲明API
Extern.Declare micLong,"SendMessage","user32.dll","SendMessageA",micLong,micLong,micLong,micLong

' 設置Listbox選項item的消息
Const LB_SETSEL = &H185

'方法:根據index選中復選框
Function CheckListBox(hwnd, index)
extern.SendMessagehwnd, LB_SETSEL, True, index
end function

'方法:根據index取消選中復選框
Function UnCheckListBox(hwnd, index)
extern.SendMessagehwnd, LB_SETSEL, False, index
end function

  問題 17-4.如何取到一個文本框的背景色 (當驗證必填項跟可選項底色不同時可用到)

'聲明需要的 API
Extern.Declare micLong,"GetPixel","gdi32","GetPixel",micLong,micLong,micLong
Extern.Declare micLong,"GetWindowDC","user32","GetWindowDC",micLong
Extern.Declare micLong,"ReleaseDC","user32","ReleaseDC",micLong,micLong
Extern.Declare micLong,"GetDC","user32","GetDC",micLong
Extern.Declare micLong,"SetForegroundWindow","user32","SetForegroundWindow",micLong

Dim hDCSource
Dim hWndSource
Dim backColor
'取得控件的句柄
hWndSource = Window("Window").WinEdit("MandatoryField1").GetROProperty("hwnd")

'將窗口置于最上面,因為GetPixel方法只能針對可見像素使用
extern.SetForegroundWindowhWndSource

'取得設備上下文句柄
hDCSource = Clng(Extern.GetDC(hWndSource))

'取得相關控件的像素(1,1)點的背景色
backColor = Clng(Extern.GetPixel(hDCSource, Clng(1),Clng(1)))
MsgBoxbackColor

'釋放設備上下文句柄
Extern.ReleaseDChWndSource, hDCSource

  問題 17-5.如何使用Windows API模擬鍵盤操作

'聲明API:鍵盤事件keybd_event
extern.Declare micVoid,"keybd_event","user32" ,"keybd_event", _
micbyte,micbyte,miclong,miclon
'聲明API:虛擬按鍵碼映射MapVirtualKey
extern.Declare micLong,"MapVirtualKey","user32","MapVirtualKeyA", _
micLong, micLong

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Const KEYEVENTF_KEYDOWN = &H0

Sub KeyDown(KeyAscii)
keyCode = extern.MapVirtualKey(KeyAscii, 0)
  '觸發按鍵按下事件
extern.keybd_eventKeyAscii, keyCode, KEYEVENTF_KEYDOWN, 0
End Sub

Sub KeyUp(KeyAscii)
keyCode = extern.MapVirtualKey(KeyAscii, 0)
 '觸發按鍵抬起事件
extern.keybd_eventKeyAscii, keyCode, KEYEVENTF_KEYUP, 0
End Sub

Sub KeyPress(KeyAscii)
KeyDownKeyAscii
KeyUpKeyAscii
End Sub

  對“計算器”使用以上代碼

'聲明鍵值常量
Const vbKey1 = 49
Const vbKey2 = 50
ConstvbKeyAdd = 107
ConstvbKeyReturn = 13

SystemUtil.Run"calc.exe"
Window("title:=Calculator").Activate
Call KeyPress(vbKey1)
Call KeyPress(vbKeyAdd)
Call KeyPress(vbKey2)
Call KeyPress(vbKeyReturn)

  使用以上代碼模擬CTRL+ALT+S

'聲明鍵值常量
ConstvbKeyControl = 17
ConstvbKeyAlt = 18
ConstvbKeyS = 83

Call KeyDown(vbKeyControl)
Call KeyDown(vbKeyAlt)
Call KeyDown(vbKeyS)
Call KeyUp(vbKeyS)
Call KeyUp(vbKeyAlt)
Call KeyUp(vbKeyControl)

原文轉自:http://www.uml.org.cn/Test/201307084.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97