在VBS指令碼設計中,如果能使用windows提供的系統對話方塊,可以簡化指令碼的使用難度,使指令碼人性化許多,很少有人使用,但VBS並非不能實現這樣的功能,方法當然還是利用COM對象。
1、SAFRCFileDlg.FileSave對象:屬性有:FileName — 指定預設檔案名稱;FileType —
指定副檔名;OpenFileSaveDlg — 顯示檔案儲存框體方法。
2、SAFRCFileDlg.FileOpen 對象:FileName — 預設檔案名稱屬性;OpenFileOpenDlg — 顯示開啟檔案框體方法。
3、UserAccounts.CommonDialog對象:Filter — 副檔名屬性("vbs File|*.vbs|All Files|*.*");
FilterIndex — 指定
InitialDir — 指定預設的檔案夾
FileName — 指定的檔案名稱
Flags — 對話方塊的類型
Showopen方法:
很簡單,ok,讓我們來舉兩個簡單的例子:
例一:儲存檔案
Set objDialog = CreateObject("SAFRCFileDlg.FileSave")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objDialog.FileName = "test"
objDialog.FileType = ".txt"
intReturn = objDialog.OpenFileSaveDlg
If intReturn Then
objFSO.CreateTextFile(objDialog.FileName & objdialog.filetype)
Else
Wscript.Quit
End If
注意:1、SAFRCFileDlg.FileSave對象僅僅是提供了一個方便使用者選擇的介面,本身並沒有儲存檔案的功能,儲存檔案還需要使用FSO對象來完成。2、用FileType屬性來指定預設的檔案類型。3、在調用OpenFileSaveDlg方法時,最好把傳回值儲存到一變數中,用它可以判斷使用者按下的是確定還是取消。
例二:.開啟檔案
set objFile = CreateObject("SAFRCFileDlg.FileOpen")
intRet = objFile.OpenFileOpenDlg
if intret then
msgbox “檔案開啟成功!檔案名稱為:” & objFile.filename
else
wscript.quit
end if
例三:比較複雜的開啟檔案對話方塊
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "vbs File|*.vbs"
objDialog.InitialDir = "c:/"
tfile=objDialog.ShowOpen
if tfile then
strLoadFile = objDialog.FileName
msgbox strLoadFile
else
wscript.quit
end if
說明:在指令碼中加入 objDialog.Flags = &H020 看看會出現什麼結果。