在VBS脚本设计中,如果能使用windows提供的系统对话框,可以简化脚本的使用难度,使脚本人性化许多,很少有人使用,但VBS并非不能实现这样的功能,方法当然还是利用COM对象。
o_Qg1d;W01、SAFRCFileDlg.FileSave对象:属性有:FileName — 指定默认文件名;FileType — 指定文件扩展名;OpenFileSaveDlg — 显示文件保存框体方法。
n[k$X6D2V&x02、SAFRCFileDlg.FileOpen 对象:FileName — 默认文件名属性;OpenFileOpenDlg — 显示打开文件框体方法。51Testing软件测试网o;Yd-g$}`
3、UserAccounts.CommonDialog对象:Filter — 扩展名属性("vbs File|*.vbs|All Files|*.*");
W'?_c
c[C2u!l0FilterIndex — 指定51Testing软件测试网7d&q!t:rN
p oX$I5U
InitialDir — 指定默认的文件夹51Testing软件测试网:X2L2fe~E#r*U){]
FileName — 指定的文件名51Testing软件测试网mbRE Q
Flags — 对话框的类型51Testing软件测试网f l*Pg(umH
u)a
Showopen方法:51Testing软件测试网4|gtw{v4w6F:`9c
很简单,ok,让我们来举两个简单的例子:
)N JCvA2[0例一:保存文件51Testing软件测试网1]-Mgmt/O.t
Set bjDialog = CreateObject("SAFRCFileDlg.FileSave")51Testing软件测试网P#mb/h:ayoLds
Set bjFSO = CreateObject("Scripting.FileSystemObject")51Testing软件测试网!Y5]1yxt
objDialog.FileName = "test"51Testing软件测试网GL&@4?M
objDialog.FileType = ".txt"51Testing软件测试网a*A+hk&|%Bp8D
intReturn = objDialog.OpenFileSaveDlg51Testing软件测试网
V+L5J8x;i[1a.E.Z
If intReturn Then
2L#V{,OY m;j4L0objFSO.CreateTextFile(objDialog.FileName & objdialog.filetype)51Testing软件测试网1iJ~0z\n dd4G
Else
og6a}C^&c(Z0Wscript.Quit51Testing软件测试网2Dp S]9l-\tE'F`
End If51Testing软件测试网NS4S#zp)m
注意:1、SAFRCFileDlg.FileSave对象仅仅是提供了一个方便用户选择的界面,本身并没有保存文件的功能,保存文件还需要使用FSO对象来完成。2、用FileType属性来指定默认的文件类型。3、在调用OpenFileSaveDlg方法时,最好把返回值保存到一变量中,用它可以判断用户按下的是确定还是取消。
YmD}S"r4J#P0例二:.打开文件51Testing软件测试网fT8C7e(A${Q(Y_
set bjFile = CreateObject("SAFRCFileDlg.FileOpen")
3d!x*Efb
l0intRet = objFile.OpenFileOpenDlg51Testing软件测试网#m g
P$D3k z+S
if intret then51Testing软件测试网o[5g4hG
msgbox “文件打开成功!文件名为:” & objFile.filename
5Jn,hSV(F0else
5Iu)fFx/}!^0wscript.quit51Testing软件测试网`F)y#Pi[#TK
end if
5kW R'w,|J0例三:比较复杂的打开文件对话框
n4pUqW
le6q_0Set bjDialog = CreateObject("UserAccounts.CommonDialog")51Testing软件测试网|-S9i.L
i$UY
objDialog.Filter = "vbs File|*.vbs"
CjYYDV
S[l0objDialog.InitialDir = "c:\"
cC6|&yL$y:g} y0tfile=objDialog.ShowOpen
4} Qd$C L`0if tfile then51Testing软件测试网:x8hW+j'Js
strLoadFile = objDialog.FileName
m8PiA*x5d)t)iN0msgbox strLoadFile51Testing软件测试网0PkzVEz
@7JQG
else51Testing软件测试网Qi5B:^~5K
wscript.quit
2|4~0jd |6J0end if
,| V$}$`R I\-RD8N`2L0说明:在脚本中加入 objDialog.Flags = &H020 看看会出现什么结果。51Testing软件测试网-R,G%k-R1L4o)sp
y9nF