habs auf die Schnelle im Forum nicht gefunden'Dialog\OrdnerAuswahl:
Option Public
Public Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const vbNullChar = &H0
Const vbNullString = &H0
Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32" (Byval pidList As Long, Byval lpBuffer As String) As Long
Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (Byval lpString1 As String, Byval lpString2 As String) As Long
Public Function BrowseForFolder(Titel As String, hWnd As Long) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim usrBrowseInfo As BrowseInfo
usrBrowseInfo.hwndOwner = hWnd
usrBrowseInfo.lpszTitle = lstrcat(Titel, "")
usrBrowseInfo.ulFlags = 3
lngIDList = SHBrowseForFolder(usrBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Fulltrim(strBuffer)
If Right(strBuffer, 1) <> "\" Then strBuffer = strBuffer & "\"
BrowseForFolder = strBuffer
End If
End Function
Sub Initialize
wert = BrowseForFolder("Ordnerauswahl",&H0)
Msgbox wert
End Sub
Ohne API gehts auch:
1. notesUIWorkspace.SaveFileDialog
stringArray = notesUIWorkspace.SaveFileDialog( directoriesOnly , [title$] , [filters$] , [initialDirectory$] , [initialFile$] )
directoriesOnly
Boolean.
- True displays directories only.
- False displays directories and files.
This method returns a name. It does not save or perform any other action on files.
Sicherlich etwas merkwürdig zum Öffnen eine "Save"-Methode nehmen zu müssen. ;)
2. uiws.Prompt
Dim MeinOrdner As String
MeinOrdner = uiws.Prompt(14,"","")
Die "14" ist nicht dokumentiert, funktioniert aber wie gewünscht. Die anderen Parameter (Title and Prompt) werden dann aber ignoriert. Der Dialog ist dann nicht änderbar mit "Choose folder" benannt.
Gruß
Manfred