Re: [VBS]怎麼用BrowseForFolder方法來存取檔案
這個有BUG
不是你的程式
是微軟
WINXP有另一個內建方式可存取檔案
但如果你要適用各版本WINDOWS的話
建議你用IE
寫一個檔案控制項到網頁上,再送出按鍵給檔案按鈕
你可以直接引用下面這個函式
這個方式的缺點是,沒辦法過濾副檔名
Function IEOpenFileDialog()
Dim IEApp
Dim oDoc
set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = true
IEApp.Height = 0
IEApp.Width = 0
IEApp.Navigate("about:blank")
While IEApp.Busy
if Wscript.Version > 5 Then WSH.Sleep 100
Wend
set oDoc = IEApp.document
oDoc.Write("<input id=file type=file style='position:absolute; left:0;
top:0'>")
oDoc.all.file.focus
oDoc.all.file.click
IEOpenFileDialog = oDoc.all.file.value
IEApp.Quit
set oDoc = Nothing
set IEApp = Nothing
End Function
※ 引述《greenmiracle (看著吧..)》之銘言:
: 用BrowseForFolder方法讓使用者選擇資料夾可以抓到,例如下面是一個對話盒讓使用者
: 選擇資料夾,然後跳出視窗告知使用者選擇的資料夾的路徑:
: 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
: '使用者選取的資料夾設給objFolder(Shell Folder)
: 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
: 但如果是檔案的話就抓不到了
: 若把第三個參數改成
: Const OPTIONS = 16384
: 則可以瀏覽全部的東西包括檔案
: 但選取檔案的結果是發生[系統找不到指定的檔案]的錯誤
: 請問該如何解決才能選取檔案?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.48.194
推
03/09 10:34, , 1F
03/09 10:34, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章