在VBS脚本设计中,如果能使用windows提供的系统对话框,可以简化脚本的使用难度,使脚本人性化许多,很少有人使用,但VBS并非不能实现这样的功能,方法当然还是利用COM对象。
8B4U5Ch$E^*t01、SAFRCFileDlg.FileSave对象:属性有:FileName—指定默认文件名;FileType—指定文件扩展名;OpenFileSaveDlg—显示文件保存框体方法。51Testing软件测试网S'q)g$Q!f'D'tNX8o
2、SAFRCFileDlg.FileOpen对象:FileName—默认文件名属性;OpenFileOpenDlg—显示打开文件框体方法。
!O*de.|iP0e3a.}v03、UserAccounts.CommonDialog对象:Filter—扩展名属性("vbs File|*.vbs|All Files|*.*");
IE
`0N[9b!yz0FilterIndex—指定51Testing软件测试网*Oyjh8|1Z
l
InitialDir—指定默认的文件夹51Testing软件测试网0`{} sAGT{#V!B
FileName —指定的文件名51Testing软件测试网:T/WFfS)E7??`
Flags—对话框的类型51Testing软件测试网-xB.D4ZG3z%yw0i;c
Showopen方法:
5\ h6M-|T}0很简单,ok,让我们来举两个简单的例子:
6R+\k^[0例一:保存文件51Testing软件测试网%Y${S@0K
Set ōbjDialog = CreateObject("SAFRCFileDlg.FileSave")51Testing软件测试网EPMS8}c}
Set ōbjFSO = CreateObject("scrīpting.FileSystemObject")51Testing软件测试网;I2O-se l
objDialog.FileName = "test"
]7}.L/tgx"q#sU&xu0objDialog.FileType = ".txt"
]c1a?m ]4ozYP^0intReturn = objDialog.OpenFileSaveDlg51Testing软件测试网3Cl4M&V'X]{b
If intReturn Then
7e7Z XY/_D5|0objFSO.CreateTextFile(objDialog.FileName & objdialog.filetype)
aWO7k3u;X.O8c$MEJ0Else
$DM!E0Ys%v0Wscrīpt.Quit51Testing软件测试网EBqD?6\:yj;\
End If
`1@ iE.C0注意:1、SAFRCFileDlg.FileSave对象仅仅是提供了一个方便用户选择的界面,本身并没有保存文件的功能,保存文件还需要使用FSO对象来完成。2、用FileType属性来指定默认的文件类型。3、在调用OpenFileSaveDlg方法时,最好把返回值保存到一变量中,用它可以判断用户按下的是确定还是取消。51Testing软件测试网ZZ4p"t%shn
例二:.打开文件
%zj0K^HJ0set ōbjFile = CreateObject("SAFRCFileDlg.FileOpen")51Testing软件测试网[$j a
|V}8e{mf
intRet = objFile.OpenFileOpenDlg
I.I:O6yR6VGqHr0if intret then
tg.eZ/y5\3B+^0msgbox “文件打开成功!文件名为:” & objFile.filename
9o
I
Z|:ft%`
v2h*ig0else51Testing软件测试网}8S_my#JWh(h
wscrīpt.quit51Testing软件测试网QE+a:I]!LqZ*Y
end if
;c"X
SsZq
R0例三:比较复杂的打开文件对话框
;]h+YCj^1t_\2@0Set ōbjDialog = CreateObject("UserAccounts.CommonDialog")51Testing软件测试网"s.Q*E Xs.D.uI(P
objDialog.Filter = "vbs File|*.vbs"
$?(_!o%}]f0objDialog.InitialDir = "c:\"
m'V^7q+I0C%[r/N0pO0tfile=objDialog.ShowOpen
0[%Sx-nFQA0if tfile then51Testing软件测试网3^7^
Rf scw
strLoadFile = objDialog.FileName51Testing软件测试网f{A*Vbs]"G
msgboxstrLoadFile51Testing软件测试网os4VR0X e
else
1\'CxIb3Y0wscrīpt.quit51Testing软件测试网*_P7s5mn W,e
end if
6C7Cs"g@p%QC%?0说明:在脚本中加入objDialog.Flags = &H020看看会出现什么结果。
6?BMiB^Y,Qh/x0