51Testing丛书连载:(四十七)精通QTP——自动化测试技术领航

发表于:2012-2-16 13:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  这是因为Excel考虑到安全性的问题,默认是限制用户使用脚本直接访问VBProject程序,默认状态是没有设置为信任,因此把它的状态改为可信任状态即可。当打开Excel后,依次进入工具→宏→安全性,选择“可靠发行商”选项卡后,如图3-37所示。

图3-37

  在红色边框区域可以看到“信任对于‘Visual Basic项目’的访问”,默认状态下Excel是不会对其进行信任的,把此选项选上。即可做到对VBProject信任状态了。说到这里有些读者会问:既然是全部动态的,那么出了这个问题还一定要手工干预才能够解决问题,那不是非常的被动吗,只要移植到其他计算机上就必须要在此处设置一下才行。在此告诉各位读者,其实完全不用在Excel中进行手工设置即可解决此问题。首先可以想一下,很多程序或者软件它的预设置都是存放在注册表中的,因此,只需要直接修改注册表即可,那要自动化注册表就很简单了,直接使用WSH对象即可轻松完成。接下来重新修改了脚本:

'创建WSH对象

Set oWshShell = CreateObject("wscript.shell")

'创建EOM对象

Set eom = CreateObject("excel.application")

'写入注册表,设置对VBProject进行信任

oWshShell.RegWrite _

"HKLM\SOFTWARE\Microsoft\Office\11.0\Excel\Security\AccessVBOM_

, 1, "REG_DWORD"

'打开D盘中的1.xls文件

Set oWorkbook = eom.Workbooks.Add

'进入到宏编辑区并获取到WorkBook的脚本模块对象

Set oModule = oWorkbook.VBProject.VBComponents.Item("ThisWorkbook")

直接动态导入函数库文件

oModule.CodeModule.AddFromFile "d:\1.bas"

'执行脚本

oWorkbook.tt

'关闭WorkBook,此处false代表不保存直接关闭

oWorkbook.Close false

'退出Excel应用

eom.Quit

'删除注册表

oWshShell.RegDelete _

"HKLM\SOFTWARE\Microsoft\Office\11.0\Excel\Security\AccessVBOM"

'释放

Set oWshShell = Nothing 

Set eom = Nothing

  分析:

  以上脚本和前面的脚本差别不是很大,只是在最开始和最后的地方加入了自动写和还原注册表。“HKLM\SOFTWARE\Microsoft\Office\11.0\Excel\Security\AccessVBOM”此路径的键值就是控制Excel自动连接VBProject的信任开关。在打开了此信任开关之后,脚本就可以顺利执行完毕。但是有一点需要注意,在最后需要把加入的键值删除掉来保证下一次执行时写入注册表不会出现系统错误。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号