代码在下面,完整压缩包例子请参见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