中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

VBS 顯示“選擇文件或文件夾”對話框的代碼
來源:易賢網 閱讀:1703 次 日期:2016-07-07 14:28:49
溫馨提示:易賢網小編為您整理了“VBS 顯示“選擇文件或文件夾”對話框的代碼”,方便廣大網友查閱!

VBS 顯示“選擇文件或文件夾”對話框的代碼,經測試windows xp下才可以使用,win2000,win2003沒有內置這樣的方法。

一、顯示“選擇文件”的對話框

問: 嗨,Scripting Guy!有沒有什么方法可以讓我使用腳本向用戶顯示一個對話框,供用戶選擇文件使用?

答:您好。|

如果您使用的是 Windows 2000,我們不知道實現此操作的方法,至少操作系統中沒有內置這樣的方法。

但如果您使用的是 Windows XP,情況就不同了。在 Windows XP 上,您可以使用"UserAccounts.CommonDialog” 對象向用戶顯示一個標準的“文件打開”對話框。

可以用類似以下代碼的腳本:

代碼如下:

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.*"

objDialog.InitialDir = "C:\"

intResult = objDialog.ShowOpen

If intResult = 0 Then

Wscript.Quit

Else

Wscript.Echo objDialog.FileName

End If

這是一個小腳本,所以讓我們逐行進行解釋吧:

1)我們首先創建一個對 UserAccounts.CommonDialog 對象的對象引用(名為“objDialog”)。

2)接著,我們設置對話框的“篩選”屬性。我們要顯示所有文件,所以我們將篩選設置成這樣:

objDialog.Filter = "All Files|*.*"

假如我們只想顯示文本文件,那該怎么辦?在這種情況下,我們將使用以下篩選:

objDialog.Filter = "Text Files|*.txt"

您也許能夠看出它是如何運行的:我們為文件類型提供說明 (Text Files),然后插入一個豎線分隔符 (|),最后使用標準的通配符來指示所有 .txt 文件 (*.txt)。

是不是想默認顯示 .txt 文件,然后為用戶提供查看所有文件的選項?那么可以使用以下代碼:

objDialog.Filter = "Text Files|*.txt|All Files|*.*"

試一試,您就明白我們的意思了。

3)然后,我們指定默認文件夾。

默認情況下,我們希望對話框顯示位于驅動器 C 的根文件夾中的文件,所以我們這樣設置“InitialDir”屬性:

objDialog.InitialDir = "C:\"

希望顯示 C:\Windows 文件夾中的文件嗎?那么可以使用以下代碼:

objDialog.InitialDir = "C:\Windows"

不必擔心:這是一個真正的“文件打開”對話框,所以您可以隨意單擊,并且可以隨時停下來。您從 C:\Windows 開始并不意味著您只能打開該文件夾中的文件。

4)最后,我們使用下面這行代碼顯示對話框:

intResult = objDialog.ShowOpen

現在,我們只需坐下來,等待用戶選擇文件并單擊“確定”(或者等待用戶單擊“取消”)。

如果用戶單擊“取消”,則變量 intResult 將被設置為 0。在我們的腳本中,我們檢查 intResult 的值,如果是 0,我們將只需要使用 Wscript.Quit 來終止此腳本。

但是如果用戶實際上選擇了文件并單擊了“確定”,那該怎么辦?在這種情況下,intResult 將被設置為 -1,“FileDialog”屬性將被設置為所選文件的路徑名。我們的腳本只回顯路徑名,這意味著我們將得到類似以下內容的輸出:

C:\WINDOWS\Prairie Wind.bmp

不用說,您并不局限于只回顯文件路徑。實際上,您可以使用 WMI、FileSystemObject 或一些其他技術來綁定該文件,然后對其執行刪除、復制、壓縮或檢索文件屬性等操作 — 您對文件能夠執行的操作差不多都可以對它執行。

但無論如何,您都需要使用腳本。

順便說一句,使用此方法,您一次只能選擇一個文件,而不能按住“Ctrl”鍵選擇多個文件。有一種方法可以選擇多個文件,至少在 XP 計算機上可以,但是我們只能將此問題留到以后的專欄中討論了。

二、顯示“選擇文件夾”對話框?

問:嗨,腳本專家!在前面的專欄中,您為我們展示了如何給用戶顯示對話框,使他們能夠選擇文件。存在給用戶顯示一個對話框,只讓他們選擇文件夾的辦法嗎?

答:您好。

實際上,我們有 BrowseForFolder 方法,它是 Windows Shell 對象的一部分。

讓我給您一個腳本示例,然后講一下它的工作方式:

代碼如下:

Const WINDOW_HANDLE = 0

Const OPTIONS = 0

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.BrowseForFolder _

(WINDOW_HANDLE, "Select a folder:", OPTIONS, "C:\")

If objFolder Is Nothing Then

Wscript.Quit

End If

Set objFolderItem = objFolder.Self

objPath = objFolderItem.Path

Wscript.Echo objPath

首先,我們定義一對常量:WINDOW_HANDLE 和 OPTIONS。

WINDOW_HANDLE 常量表示需要指定給要顯示的對話框的數字 ID;對于腳本,此值應始終為 0。

將 OPTIONS 設置為 0 表示我們將顯示一個非常簡單的對話框,一個限制用戶只從文件夾列表進行選擇的對話框。或者,我們可以將 OPTIONS 設置成 &H10&。這種情況下,我們的對話框將包括文本區,用戶可以在此鍵入文件夾路徑。

定義完常量后,我們創建 Shell.Application 對象的實例,然后使用以下代碼顯示“瀏覽文件夾”對話框:

Set objFolder = objShell.BrowseForFolder _

(WINDOW_HANDLE, "Select a folder:", OPTIONS, "C:\")

您可以看到,我們只是調用 BrowseForFolder 方法,傳遞了四個參數:

WINDOW_HANDLE,正如我們所說明的,是分配給對話框窗口的數字 ID。

文本字符串 Select a folder:,將作為顯示在對話框中的說明性消息。

OPTIONS,表示構造對話框所用選項的常量。

C:\,將作為對話框的根文件夾。對話框將打開 C:\,但不允許您選擇樹視圖中較上方的文件位置(例如,您不能選擇“我的電腦”)。如果將根文件夾設置為 C:\Scripts,則將只允許用戶選擇文件夾 C:\Scripts 及其所有子文件夾。

該代碼將產生一個類似屏幕上顯示的對話框。

(您是否有疑問,是的,您以前曾見過此對話框。許多 Windows 應用程序使用同樣的方法,同樣的對話框。)

此時,我們的腳本暫停,等候用戶選擇文件夾并單擊確定,或者單擊取消。當用戶進行了這兩個操作之一,對話框將被清除,操作將存儲在對象引用 objFolder 中。

那么我們如何知道用戶是否選擇了一個文件夾并單擊了確定,或者只單擊了取消?以下代碼塊就用來解決這個問題:

If objFolder Is Nothing Then

Wscript.Quit

End If

該代碼檢查我們的對象引用 (objFolder) 是否等于一個真正對象(這是關鍵字 Nothing 的用途)。如果 objFolder 等于 Nothing,則意味著用戶單擊了取消;如果是那樣的話,我們只簡單用 Wscript.Quit 退出腳本。如果 objFolder 不等于 Nothing,那么 objFolder 一定指向一個真正的對象;于是腳本將繼續運行。

由于 Shell 對象的特點,以下兩行代碼是必要的:

Set objFolderItem = objFolder.Self

objPath = objFolderItem.Path

當用戶選擇文件夾并單擊確定,他們將得到 Shell Folder 對象的實例。然而,由于某些原因您不能使用 Shell Folder 對象;如果我們要檢索選定文件夾的路徑,我們得用 FolderItem 對象來代替。(為什么是這樣呢?我們不知道。)于是,我們的第一行代碼使用 Self 方法返回一個 FolderItem 對象,該對象正與我們的 Folder 對象相同。第二行代碼將到此 FolderItem 對象的路徑存儲到變量 objPath 中。看上去有點笨拙,但它確實能夠工作。

最后我們回顯到選定文件夾的路徑,到此工作既已完成。

正如我們說明的,示例對話框使用 C:\ 作為根文件夾,不允許您選擇位于計算機其他地方的文件夾。有時這樣做很好;這樣會迫使用戶從一組特定文件夾中進行選擇。但有時,想使用戶能夠選擇文件系統中任意位置的文件夾。這可能嗎?

當然可以。我們不詳述這個修改后的腳本,但該腳本會將“我的電腦”設置為根文件夾:

代碼如下:

Const MY_COMPUTER = &H11&

Const WINDOW_HANDLE = 0

Const OPTIONS = 0

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(MY_COMPUTER)

Set objFolderItem = objFolder.Self

strPath = objFolderItem.Path

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.BrowseForFolder _

(WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath)

If objFolder Is Nothing Then

Wscript.Quit

End If

Set objFolderItem = objFolder.Self

objPath = objFolderItem.Path

Wscript.Echo objPath

如您所料,所得到的對話框提供了很多選擇。這正是您所需要的。

更多信息請查看腳本欄目
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲一级高清| 伊人久久亚洲影院| 亚洲久久一区二区| 国产乱码精品一区二区三区五月婷| 欧美激情一级片一区二区| 欧美日韩精品一区| 国产精品丝袜xxxxxxx| 国产综合激情| 亚洲精品国久久99热| 1024成人| 亚洲一区久久久| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲精选中文字幕| 亚洲一区二区在线免费观看| 久久精品91久久久久久再现| 欧美精品七区| 国内视频一区| 亚洲一区二区三区在线看| 久久午夜电影网| 欧美日韩精品一区二区三区四区 | 国产麻豆成人精品| 亚洲激情啪啪| 久久本道综合色狠狠五月| 欧美绝品在线观看成人午夜影视| 国产麻豆成人精品| 欧美成人69av| 国产原创一区二区| 亚洲专区国产精品| 欧美成人中文字幕在线| 国产综合激情| 亚洲欧美久久久久一区二区三区| 欧美高清在线视频| 国产婷婷色一区二区三区| 亚洲一区二区精品视频| 欧美日本在线| 最新国产成人av网站网址麻豆 | 亚洲视频免费观看| 欧美阿v一级看视频| 黄色成人av| 久久国产精品亚洲va麻豆| 国产精品乱码一区二区三区| 亚洲久色影视| 欧美高清影院| 91久久亚洲| 免费不卡在线视频| 久久精品一二三| 亚洲免费视频中文字幕| 亚洲福利免费| 亚洲午夜极品| 亚洲精品韩国| 韩国女主播一区| 亚洲成色999久久网站| 欧美精品亚洲一区二区在线播放| 国产精品超碰97尤物18| 欧美国内亚洲| 欧美黄色一区| 国产精品美女xx| 亚洲福利视频二区| 亚洲调教视频在线观看| 久久香蕉国产线看观看av| 欧美91大片| 欧美日韩亚洲一区三区| 国产一区二区在线免费观看| 亚洲在线中文字幕| 久久精品视频播放| 久久久久久久一区| 欧美三区在线| 一道本一区二区| 欧美黑人一区二区三区| 国产视频不卡| 久久久www| 国外精品视频| 欧美激情第五页| 欧美日韩国产综合新一区| 国产精品国产三级国产aⅴ9色| 亚洲激情电影在线| 欧美aa国产视频| 亚洲国产mv| 欧美一区二区三区视频| 欧美黄网免费在线观看| 在线看无码的免费网站| 亚洲欧美中文在线视频| 欧美日韩在线另类| 亚洲二区在线观看| 欧美日韩不卡在线| 久久久精品免费视频| 一区二区三区在线视频观看| 欧美国产日产韩国视频| 亚洲在线成人| 亚洲国产精品一区二区三区| 欧美视频网站| 欧美性生交xxxxx久久久| 亚洲国产一区在线| 欧美视频一区二区三区…| 亚洲一区自拍| 国产综合一区二区| 欧美日韩精选| 欧美在线免费视屏| 亚洲第一中文字幕| 欧美日韩八区| 欧美在线欧美在线| 国产日产精品一区二区三区四区的观看方式 | 国产日产精品一区二区三区四区的观看方式| 国产欧美不卡| 欧美日韩1080p| 中文有码久久| 国产精品成人在线| 亚洲精品欧美| 国产日韩一区欧美| 欧美11—12娇小xxxx| 中文日韩在线| 一本色道综合亚洲| 国产三区二区一区久久 | 亚洲国产精品一区二区第四页av| 欧美v亚洲v综合ⅴ国产v| 久久久久高清| 欧美综合激情网| 欧美成黄导航| 国产精品你懂的在线欣赏| 国产日产欧美精品| 黄色一区二区在线观看| 亚洲免费观看高清完整版在线观看熊 | 久久九九免费视频| 亚洲精品综合久久中文字幕| 久久激情五月激情| 性欧美xxxx视频在线观看| 亚洲综合色噜噜狠狠| 黑人巨大精品欧美黑白配亚洲| 久久综合99re88久久爱| 亚洲一区二区三| 日韩特黄影片| 日韩图片一区| 亚洲人成在线播放网站岛国| 精品999网站| 黄色av一区| 亚洲国产欧美精品| 亚洲成色www8888| 亚洲国产99精品国自产| 亚洲成人原创| 欧美福利一区| 久久久精品一区二区三区| 久久亚洲国产精品一区二区 | 免费久久99精品国产| 久久爱91午夜羞羞| 欧美亚洲视频在线看网址| 久久成人精品视频| 久久久久久久综合| 国内精品美女在线观看| 国内精品伊人久久久久av一坑| 国产精品对白刺激久久久| 国产日韩精品入口| 狠狠色噜噜狠狠狠狠色吗综合| 在线免费一区三区| 亚洲精品一区二区在线观看| 这里只有精品丝袜| 久久久精品国产免大香伊 | 欧美日韩高清区| 欧美日韩中文字幕综合视频| 欧美日韩在线播放三区四区| 国产日韩一区二区三区在线播放| 亚洲国产高潮在线观看| 亚洲色图制服丝袜| 久久综合色播五月| 欧美日韩99| 国产一区清纯| 正在播放欧美视频| 蜜桃av噜噜一区| 欧美日本在线观看| 久久精品国语| 国产在线乱码一区二区三区| 狠狠色狠狠色综合日日91app| 久久人体大胆视频| 亚洲一区在线直播| 亚洲免费久久| 99re6这里只有精品视频在线观看| 国产一级久久| 欧美色偷偷大香| 欧美激情无毛| 香港成人在线视频| 亚洲精品欧美激情| 亚洲日本成人在线观看| 亚洲午夜黄色| 亚洲午夜久久久久久久久电影院| 亚洲美女免费视频| 亚洲香蕉伊综合在人在线视看| 先锋影音国产精品| 国产精品99久久久久久白浆小说| 999在线观看精品免费不卡网站| 欧美国产日韩a欧美在线观看| 亚欧美中日韩视频| 日韩一级精品| 亚洲毛片一区| 91久久久一线二线三线品牌| 国产精品免费小视频| 欧美gay视频| 亚洲美女啪啪| 免费观看日韩av| 欧美午夜精品理论片a级按摩| 欧美日韩卡一卡二| 国产亚洲精品美女|