问题 17-6.如何防止电脑因为屏保而锁住
有时我们需要执行耗时很长的无人值守脚本,如果几分钟没有键盘或鼠标操作,屏保策略会使机器锁住,将导致QTP脚本不能执行的问题。我们可以使用以下键盘和鼠标模拟事件来避免这种情况。
'C:\PreventPCLock.vbs ConstmicVoid = 0 ConstmicByte = 26 ConstmicLong = 3 Const KEYEVENTF_KEYUP = &H2
'创建Extern对象 Set Extern = CreateObject("Mercury.ExternObj") extern.Declare micVoid,"keybd_event","user32" ,"keybd_event" , _ micByte,micbyte,miclong,micLong
Extern.Declare micVoid,"Sleep","kernel32","Sleep",micLong
While True extern.keybd_event 0, 0, KEYEVENTF_KEYDOWN, 0 Extern.Sleep 20000 Wend |
小提示:以上代码有可能会产生“无法找到指定模块”的错误,这是因为包含这些类的DLL在注册表中并未包含完整路径造成的。为了解决这个问题,需要将QTP安装后的bin文件夹添加到Windows的PATH环境变量中。
我们可以使用如下代码将QTP的bin目录加到windows的PATH环境变量中
'此函数将一个目录加入到PATH环境变量 Public Function AddToSystemPath(ByVal Path) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
'取得Windows环境变量 Set colItems = objWMIService.ExecQuery _ ("Select * From Win32_Environment Where Name = 'Path'")
For Each objItem in colItems '如果PATH中还没有此路径,将它添加到PATH变量中 If InStr(objItem.VariableValue, Path)= 0 Then '如果路径不存在则添加 strPath = objItem.VariableValue& ";" & Path objItem.VariableValue = strPath objItem.Put_ End If Next End Function
AddToSystemPath "C:\Program Files\Mercury Interactive\QuickTest Professional\bin" |
传入一个键码值(keyascii)为0到keyba_event方法中会触发一个没有按键的键盘事件。以上代码可以以放在VBScript文件中运行。
问题 17-7.如何最大化一个窗口或浏览器
'声明 Private Const SW_MAXIMIZE = 3 Extern.DeclaremicLong, "ShowWindow", "user32.dll", "ShowWindow", _ micHwnd, micLong
'如果要最大化一个窗口,那需要使用它的句柄. hWndWindow = Browser("creationtime:=0").GetROProperty("hwnd") '最大化窗口 Extern.ShowWindowhWndWindow, SW_MAXIMIZE |
问题 17-8.如何从一个URL下载文件到本地硬盘
'Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" '( ByValpCaller As Long, ByValszURL As String, ByValszFileName As String, 'ByValdwReserved As Long, ByVallpfnCB As Long ) As Long Extern.DeclaremicLong,"URLDownloadToFile","urlmon","URLDownloadToFileA", _ micLong,micString,micString,micLong,micLong
sSourceURL = http://mysite/logo.gif sTargetFile = "C:\logo.gif"
Extern.URLDownloadToFile 0, sSourceURL, sTargetFile, 0,0 |
(未完待续)
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。
相关链接:
QTP自动化测试权威指南 连载(一)
QTP自动化测试权威指南 连载(二)
QTP自动化测试权威指南 连载(三)
QTP自动化测试权威指南 连载(四)