ich möchte gern per Auswahlfenster ein Verzeichnis, in dem möglicherweise keine Dateien aber weitere Unterverzeichnisse sind, anwählen und diesen Pfad einer Variablen (z.B. "Fad") zuordnen.
Wie geht so etwas?
Vielen Dank
Kai
ich möchte gern per Auswahlfenster ein Verzeichnis, in dem möglicherweise keine Dateien aber weitere Unterverzeichnisse sind, anwählen und diesen Pfad einer Variablen (z.B. "Fad") zuordnen.
Wie geht so etwas?
Vielen Dank
Kai
mit dem folgenden Rattenschwanz klappt es:
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
______________________________________________________________
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
_______________________________________________________________
Sub DirAuswahl()
Dim msg As String
msg = "Wählen Sie bitte einen Ordner aus:"
MsgBox getdirectory(msg)
End Sub
_____________________________________________________________
Function getdirectory(Optional msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
Path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Path)
If r Then
pos = InStr(Path, Chr$(0))
getdirectory = Left(Path, pos - 1)
Else
getdirectory = ""
End If
End Function
Gruss Otto
Ich bin schwer beeindruckt!
Wie kommt man denn auf sowas?...
Schön'n Tach noch
Kai
wie man darauf kommt, weiss ich auch nicht. Es gibt halt ein paar Freaks, die sich mit den DLL's auskennen, bzw. die Parameter kennen.
Ich gehöre nicht dazu; ich habe obigen Rattenschwanz vor einiger Zeit aus irgendeinem Archiv geholt, als ich selbiges vorhatte.
Gruss Otto H.