代码在下面,完整压缩包例子请参见http://download.csdn.net/source/504482
'*************************************************************************
'* 模板名称: CALC
'* 开发人员: TANZHEN
'* 开发日期: 2006-10-12
'* 输入参数: 计算器的x,y(单数)
'* 输出参数: 结果为z
'* 脚本描述: 模拟简单的CALC的加法运算
'* 修改日期: 2008-06-18
'* 修改人员: CockRoach
'* 修改目标: 支持超过个位整数
'*************************************************************************
Dim fsoInput,fsoOutput,fileInput,readstring,fileOutput,worksheetTmp
Dim one,two
Dim ipos,ilen
Dim intTmp, i
isheetrow=1
const forreading=1
set fsoInput=createobject("scripting.filesystemobject")
Set fileInput=fsoInput.opentextfile("E:/Project/QTPTest/TestCalQTP95/input.txt",forreading)
Set fsoOutput=createobject("excel.application")
Set fileOutput=fsoOutput.workbooks.open("E:/Project/QTPTest/TestCalQTP95/output.xls")
Set worksheetTmp=fileOutput.worksheets("sheet1")
Do While (fileInput.atendofline <> True)
readstring=fileInput.readline
ipos=instr(1,readstring,",",1)
ilen=Len(readstring)
'取得2个加数
one=left(readstring,ipos-1)
two=right(readstring,ilen-ipos)
'激活计算器进行操作
Window("计算器").Activate
'输入第一个加数
'计算加数1的最高位位数(十/百/千/万...)
i = Int (Log(one)/Log(10))
if i = 0 Then
'个位数
Window("计算器").WinButton(one).Click
else
'非个位数
Do
intTmp = Int((one / (10 ^ i)) mod 10)
Window("计算器").WinButton(CStr(intTmp)).Click
i = i - 1
Loop While i > 0
end if
'输入+
Window("计算器").WinButton("+").Click
'输入第二个加数
i = Int (Log(two)/Log(10))
if i = 0 Then
'个位数
Window("计算器").WinButton(two).Click
else
'非个位数
Do
intTmp = Int((two / (10 ^ i)) mod 10)
'激活计算器进行操作
Window("计算器").WinButton(CStr(intTmp)).Click
i = i - 1
Loop While i > 0
end if
'输入=
Window("计算器").WinButton("=").Click
'此次加入catch的结果,(通过OUTPUT,和得到检查的值)
'获取运算符 g=Window("计算器").WinButton("+").GetROProperty("text")
'为期望结果作准备
g1=cdbl(one)+cdbl(two)
'此处加入判断,比如实际和期望结果比较的条件,来得到是否是失败还是成功 )
'目前只是输出运算值,结果,期望,实际值取法类似
worksheetTmp.cells(isheetrow,1)=g+cstr(isheetrow)
worksheetTmp.cells(isheetrow,2)=one
worksheetTmp.cells(isheetrow,3)=two
worksheetTmp.cells(isheetrow,4)=g1
isheetrow=isheetrow+1
Loop
'过程结束!
Window("计算器").Close
'关闭文件流
fileInput.close
'清空文件流数据
fileOutput.close
Set fileInput=Nothing
Set fsoInput=Nothing