Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: SuperDraco en 13 Julio 2011, 17:04 pm



Título: OpenFileDialog + almacenar ruta?
Publicado por: SuperDraco en 13 Julio 2011, 17:04 pm
Hola, lo que intento es abrir el dialogo de windows para abrir una carpeta, solo abrirla y guardar la carpeta que quiero, por ejemplo, abro el menú y voy a la carpeta "C:\Test" y luego le doy a "ok" en el menu, y esa carpeta se guarda en una variable...


solo tengo echo esto, y no funciona.


Código
  1. Private Sub Opendir_Click()
  2.    Dim opendir As Long, Nombre As String
  3.    Dim sFile As String
  4.    opendir = FreeFile
  5.       'sFile almacenará el path completo que nos interesa
  6.       sFile = Abrir
  7.       'Comprobamos que no sea una cadena vacia
  8.       If sFile <> "" Then
  9.      Savefile = FreeFile
  10.       End If
  11. End Sub


Título: Re: OpenFileDialog + almacenar ruta?
Publicado por: raul338 en 13 Julio 2011, 17:33 pm
Eso es porque no incluiste la funcion "Abrir" :P

Control CommonDialog - Cuadro de diálogo Abrir Archivo y Cuadro de diálogo Guardar Archivo como (http://www.recursosvisualbasic.com.ar/htm/tutoriales/control-commondialog.htm)

 O si no queres dependencias :P

Common Dialog API calls  (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=1&txtCodeId=3592)


Título: Re: OpenFileDialog + almacenar ruta?
Publicado por: SuperDraco en 13 Julio 2011, 17:37 pm
gracias tio

lo he solucionado escribiendo esto en un módulo, y luego llamandolo al hacer "click" en la opción  :xD

que novato soy xD solo se crear el menú



Código
  1. Private Const BIF_RETURNONLYFSDIRS As Long = &H1
  2. Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2
  3. Private Const BIF_RETURNFSANCESTORS As Long = &H8
  4. Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000
  5. Private Const BIF_BROWSEFORPRINTER As Long = &H2000
  6. Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000
  7. Private Const MAX_PATH As Long = 260
  8.  
  9. Type BrowseInfo
  10.    hOwner As Long
  11.    pidlRoot As Long
  12.    pszDisplayName As String
  13.    lpszINSTRUCTIONS As String
  14.    ulFlags As Long
  15.    lpfn As Long
  16.    lParam As Long
  17.    iImage As Long
  18. End Type
  19.  
  20. Type SHFILEOPSTRUCT
  21.    hwnd As Long
  22.    wFunc As Long
  23.    pFrom As String
  24.    pTo As String
  25.    fFlags As Integer
  26.    fAnyOperationsAborted As Boolean
  27.    hNameMappings As Long
  28.    lpszProgressTitle As String
  29. End Type
  30.  
  31. Declare Function SHGetPathFromIDListA Lib "shell32.dll" ( _
  32.    ByVal pidl As Long, _
  33.    ByVal pszBuffer As String) As Long
  34.  
  35. Declare Function SHBrowseForFolderA Lib "shell32.dll" ( _
  36.    lpBrowseInfo As BrowseInfo) As Long
  37.  
  38.  
  39. Function BrowseFolder(Optional Caption As String = "") As String
  40.  
  41. Dim BrowseInfo As BrowseInfo
  42. Dim FolderName As String
  43. Dim ID As Long
  44. Dim Res As Long
  45.  
  46. With BrowseInfo
  47.   .hOwner = 0
  48.   .pidlRoot = 0
  49.   .pszDisplayName = String$(MAX_PATH, vbNullChar)
  50.   .lpszINSTRUCTIONS = Caption
  51.   .ulFlags = BIF_RETURNONLYFSDIRS
  52.   .lpfn = 0
  53. End With
  54.  
  55. FolderName = String$(MAX_PATH, vbNullChar)
  56. ID = SHBrowseForFolderA(BrowseInfo)
  57. If ID Then
  58.   Res = SHGetPathFromIDListA(ID, FolderName)
  59.   If Res Then
  60.       BrowseFolder = Left$(FolderName, InStr(FolderName,vbNullChar) - 1)
  61.   End If
  62. End If
  63.  
  64. End Function