Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como abrir ventana de subdirectorios

Estas en el tema de Como abrir ventana de subdirectorios en el foro de Visual Basic clásico en Foros del Web. Por favor necesito saber como abrir esta ventana desde visual basic para acceder solo a carpetas y no archivos la ventana que se abre en ...
  #1 (permalink)  
Antiguo 28/08/2006, 09:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 24
Antigüedad: 19 años, 5 meses
Puntos: 0
Como abrir ventana de subdirectorios

Por favor necesito saber como abrir esta ventana desde visual basic para acceder solo a carpetas y no archivos

la ventana que se abre en el boton de examinar... en la vantana de busqueda de archivos y carpetas de windows 98

Es urgente si alguien me lo dice como el estaria muy agradecido

Desde ya mucha gracias
  #2 (permalink)  
Antiguo 28/08/2006, 17:41
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 19 años, 1 mes
Puntos: 1
Añade el siguiente codigo a un modulo:
Código:
Option Explicit

Private Const BIF_BROWSEFORCOMPUTER = 1000
Private Const BIF_BROWSEFORPRINTER = 2000
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const BIF_RETURNFSANCESTORS = 8
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_STATUSTEXT = 4

Private Const MAX_SIZE = 255

Private Type BROWSEINFO
         hwndOwner 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

Private Declare Function BrowseFolderDlg Lib "shell32.dll" Alias "SHBrowseForFolder" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function GetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDList" (ByVal PointerToIDList As Long, ByVal pszPath As String) As Long

'Abre la ventana de seleccion de directorio:
Public Function DLG_BrowseFolder(hwnd As Long, Title As String) As String
         On Local Error Resume Next

         Dim mBrowseInfo As BROWSEINFO
         Dim mPointerToIDList As Long
         Dim mResult As Long
         Dim mPathBuffer As String
         Dim sReturn As String

         sReturn = vbNullString
         With mBrowseInfo
                      .hwndOwner = hwnd
                      .pidlRoot = 0
                      .lpszTitle = Title
                      .pszDisplayName = String(MAX_SIZE, Chr(0))
                      .ulFlags = BIF_RETURNONLYFSDIRS

         End With

         mPointerToIDList = BrowseFolderDlg(mBrowseInfo)

         If mPointerToIDList <> 0& Then
                      mPathBuffer = String(MAX_SIZE, Chr(0))
                      mResult = GetPathFromIDList(ByVal mPointerToIDList, ByVal mPathBuffer)
                      sReturn = Left$(mPathBuffer, InStr(mPathBuffer, Chr(0)) - 1)

         End If
 
         DLG_BrowseFolder = sReturn

End Function
Un ejemplo de su uso:
Código:
Option Explicit

Private Sub Form_Load()
    Dim Path As String
    
    Path = DLG_BrowseFolder(Me.hwnd, "Seleccione directorio")
    
    Call MsgBox(Path)

End Sub
Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #3 (permalink)  
Antiguo 31/08/2006, 16:05
 
Fecha de Ingreso: noviembre-2005
Mensajes: 24
Antigüedad: 19 años, 5 meses
Puntos: 0
Genial funciono de maravialla

Muchas gracias me sirvio fenomenal. Este foro es genial al menos las dudas que he tenido me las han repondido. Estoy haciendo un sistema gestor de imagenes para un estudio de fotografia, el programa debe leer carpetas de imagenes mostrarlas permitir ver en 4,2 y 1 foto a su vez permintir aplicar efectos de sepia, b y n, bordes, copias, etc. Ya lo termine me he extendido mas del plazo y a decir verdad es mi primer programa comercial. Voy a entregar en esta semana despues de varias pruebas y de haber despues de haberme dado lista con nuevos errores y nuevos "chiches"(nuevas funciones).

Bueno muchas gracias por permitirme usar este espacio para agradecer la ayuda me gustaria tener mas contacto con programadores en forma mas directa e intercambiar experiencias, ademas me gustaria hacer amigos que estan en mi area es decir a traves de MSN o google talk o ICQ

Les paso mi Msn para aquellos que quieran registrarme
msn [email protected]
google talk ale [email protected]
movil [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:06.