Re: [VBS]怎麼用BrowseForFolder方法來存取檔案

看板Visual_Basic作者 (oi)時間19年前 (2006/03/08 21:15), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
這個有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
文章代碼(AID): #143jZnkg (Visual_Basic)
文章代碼(AID): #143jZnkg (Visual_Basic)