Användaren skall kunna ta fram en sökväg till en mapp, vilken som helst i sitt sys? Använd dirListBox och DriveListBox i kombination - är du även intresserad av filer sedan kan du även lägga till en filelistbox. 'Lägg till detta under Ta fram en sökväg?
Typ liknande "CommonDialog1.ShowOpen" fast inte välja fil utan en mapp.
som när man installerar ett program kan man byta mapp, något liknande är jag på jakt efter.
Tacksam för hjälpSv: Ta fram en sökväg?
du uppdaterar sedan boxarna enligt följande:
Private Sub Dir1_Change()
File1.Path = Dir1.Path 'gör att fillistan uppdateras efter markering
File1.Refresh
File1.Pattern = "*.xls" 'visar endast excelfiler
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive 'gör att kataloglistan uppdateras efter vald rot
End Sub
du får reda på vald katalog genom:
sokvag = Dir1.Path
osv. mer finns i hjälpen
//EmmaSv: Ta fram en sökväg?
Option Explicit
Private Type BrowseInfoA
hwndOwner As Long
pidlRoot As Long
psDisplayName As String
lpsTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function API_SHBrowseForFolderA Lib "shell32" Alias "SHBrowseForFolderA" (LPBROWSEINFOA As BrowseInfoA) As Long
Private Declare Function API_SHGetPathFromIDListA Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
'__________________________________________________________
'Sedan lägger du denna under formen eller du kan lägga denna i
'en modul men då måste du byta Private till Public:
Private Function API_BrowseForFolder(hOwnerWnd As Long, Optional TextToDisplay As String) As String
Dim tBrowse As BrowseInfoA
Dim lRet As Long
Dim lpidl As Long
Dim sPath As String
Dim sTmp As String
sTmp = ""
With tBrowse
.hwndOwner = hOwnerWnd '0
.pidlRoot = 0&
.psDisplayName = Space$(256)
.lpsTitle = TextToDisplay
.ulFlags = 1
.lpfn = 0&
.lParam = 0
.iImage = 0
lRet = API_SHBrowseForFolderA(tBrowse)
If lRet > 0 Then
lpidl = lRet
sPath = Space$(512)
lRet = API_SHGetPathFromIDListA(lpidl, sPath)
If lRet <> 0 Then
sTmp = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
If Right$(sTmp, 1) <> "\" Then
sTmp = sTmp & "\"
End If
End If
End If
End With
API_BrowseForFolder = sTmp
End Function
'_________________________________________________________
'Sedan där du vil ha vart dem skall välja folder skriver du:
Dim strFolder as string
strFolder = API_BrowseForFolder(form1.hWnd, "Välj folder en folder vart filerna skall ligga !")
'Hoppas att detta hjälper dig ......
'Mvh Masen