QTP告别COM编程(转)
现QTP中现在已经不用使用Scripting.FileSystemObject 来进行文件的操作了,因为它引入了.net以前用Scripting.FileSystemObject判断文件否存在:
Public function sFileExists(sFileName)
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(sFileName)) Then
sFileExists = true
Else
sFileExists = false
End If
End Function
现在可以使用.net里的类了,方法如:
Set var_CreateInstance = DotNetFactory.CreateInstance("System.IO.File", "")
dim filepath
filepath = "E:\Excel_VBA.txt"
dim b
b= var_CreateInstance.Exists(filepath)
msgbox b
可以达到同样的效果,这样我们不需要在为脚本语言不能实现的功能而头疼了,你直接用.net里的类就可以了.
我们的做法是,把在QTP时实现比较困难的功能,先在.net下写一个针对于自动化的库,然后通过上面的做法来引用自己写的库,就可以实现很多功能...
...
...
...
有了对.net 的支持,就不会说XXX功能在QTP下无法实现,因为编程.net可以,所以QTP可以 高手啊。
不过我一直有个疑问,使用DotNetFactory可以调用自己写好的.NET类,但是DotNetFactory.CreateInstance("System.IO.File", "")
中的参数“System.IO.File”我应该去哪里找呢?是不是有什么资料啊?
回复 1# 的帖子,标题不对,其实仍然是对COM的封装
感觉实际仍然是用VBScript支持的CreateObject封装完成,可以用Oleview.exe来查看本机已注册的COM对象。把楼主的脚本头一个例子改为:
CreateObject("System.IO.File")也是能work的,解释见http://technet.microsoft.com/zh-cn/magazine/2007.01.heyscriptingguy.aspx
System.IO.File
可以用Visual studio新建C#工程,使用using System.IO.File找到。
见http://www.sqaforums.com/showflat.php?Number=372206
这不是告别,我称之为Enhancement.
这不是告别,我称之为Enhancement.看来有此想法的不止我一个啊,同道中人!
多向你学习。
至于楼上说的研究那么细,有能力当然是好。
[ 本帖最后由 kakamissyou 于 2009-3-10 23:51 编辑 ] 3楼正解。2楼朋友可以参考这个地址
http://msdn.microsoft.com/zh-cn/library/system.io.file(VS.80).aspx 这个功能通过DLL文件的调用应该更好,要不然,你就要一本CSDN的作为参考了。
页:
[1]