Article View: be.comp.programming
Article #17644Re: Visual Basic - Dir selecteren
From: Rudi Breedenraedt
Date: Sun, 21 Nov 1999 00:00
Date: Sun, 21 Nov 1999 00:00
83 lines
3079 bytes
3079 bytes
Neem volgende regels op een in Visual Basic module:
-----------------------
Private Type BrowseInfo
hWnd As Long
pIDLRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfnCallBack As Long
lparam As Long
iImage As Long
End Type
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As
Long, ByVal lpBuffer As String) As Long
Public Function BrowseForFolder(ByVal hWnd As Long, ByVal strPrompt As
String) As String
''Calling example:
'Dim strPath As String
'strPath = BrowseForFolder(Me.hWnd, "Please select a directory")
'MsgBox "[" & strPath & "]"
Dim intNull As Integer
Dim lpIDList As Long
Dim lngResult As Long
Dim strPath As String
Dim udtBI As BrowseInfo
udtBI.hWnd = hWnd
udtBI.lpszTitle = strPrompt
udtBI.ulFlags = BIF_RETURNONLYFSDIRS
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
strPath = String$(MAX_PATH, 0)
lngResult = SHGetPathFromIDList(lpIDList, strPath)
CoTaskMemFree lpIDList ' release memory allocated by browse
intNull = InStr(strPath, vbNullChar)
If intNull Then strPath = Left$(strPath, intNull - 1)
Else
strPath = "" ' user cancelled
End If
BrowseForFolder = strPath
End Function
-----------------------
Je kunt nu de functie BrowseForFolder aanroepen, met als eerste parameter
het cijfer 0 (of een Window handle) en als tweede parameter de naam van het
venster (bv "Kies een folder").
Succes !
Rudi Breedenraedt
====================================================
United Programmers Club VZW
http://bewoner.dma.be/upc/
http://www.upc.be
upc@POBoxes.com
Pascal Nobus heeft geschreven in bericht
<3835B13F.7990BE89@village.uunet.be>...
>Ik moet in een excel-file een string van een map hebben.
>(de inhoud wordt mbv DIR-functie ingelezen en verder bewerkt)
>
>Nu gebruik ik een cel waar ik de lokatie van de map intik (bv D:\Mijn
>Documenten),
>ik ben echter op zoek om via een macro/functie (die toch gestart moet
>worden), het bekende "Bladeren... OK"-menu weergeeft.
>
>Hoe?
>
>
>Groeten,
>Pascal
Technical Details
Message-ID:
<817okt$qbf$1@rivage.news.be.easynet.net>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<3835B13F.7990BE89@village.uunet.be>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fcea4,a484135a99f9d855 X-Google-Attributes: gidfcea4,public From: "Rudi Breedenraedt" <r.b@POBoxes.com> Subject: Re: Visual Basic - Dir selecteren Date: 1999/11/21 Message-ID: <817okt$qbf$1@rivage.news.be.easynet.net> X-Deja-AN: 551120176 References: <3835B13F.7990BE89@village.uunet.be> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 X-Complaints-To: abuse@easynet.net X-Trace: rivage.news.be.easynet.net 943154653 26991 212.100.172.44 (21 Nov 1999 03:24:13 GMT) Organization: [ posted via Easynet Belgium ] NNTP-Posting-Date: 21 Nov 1999 03:24:13 GMT Newsgroups: be.comp.programming