🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #17644

Re: Visual Basic - Dir selecteren

#17644
From: Rudi Breedenraedt
Date: Sun, 21 Nov 1999 00:00
83 lines
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-mail
References: <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