Título: (ayuda) examinar Publicado por: guidosl en 7 Abril 2009, 06:13 am tengo este comando para examinar carpetas y derivar la ruta a un textbox
alguien sabe como adaptarlo apra q aparezcan losarchivos tmb y no solo la ruta de carpetas? 'CREE UN BOTON Y UN CUADRO DE TEXTO en un formulario nuevo Citar Option Explicit DefLng A-Z 'DECLARACIONES ' Este es el tipo que se pasa a la función del API SHBroseForFolder Private Type BROWSEINFO hWndOwner As Long 'ventana propietaria del dialogo de buscar carpetas pidlRoot As Long 'puntero al ItemID de la carpeta raíz pszDisplayName As String 'el nombre mostrado del objeto lpszTitle As String 'el titulo de la ventana de dialogo uFlags As Integer 'modificadores - ver abajo lpfn As Long 'direccion de una funcion "callback" (opcional) lParam As Long 'para el "callback", no utilizado iImage As Long 'para el "callback", no utilizado End Type Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "Shell32" Alias "SHBrowseForFolderA" (lpbi As BROWSEINFO) As Long Const BIF_RETURNONLYFSDIRS As Integer = 1 'Devolver sólo directorios del Sistema de Ficheros '-------------------------------------------------------------------------------------- ' Muestra un diálogo de buscar carpetas y devuelve el path a la carpeta escogida ' o una cadena vacía si la operación se canceló. Nótese que este procedimiento sólo ' devuelve carpetas del sistema de ficheros, no carpetas virtuales como Mi Ordenador o ' el Panel de Control '-------------------------------------------------------------------------------------- Private Function BrowseForFolder(ByVal f_HWnd As Long, Optional lpTitle As Variant) As String On Error Resume Next Dim lpiidl As Long, lResult As Long Dim lpbi As BROWSEINFO Dim lpszBuf As String Dim lpszNameSpace As String lpszBuf = String$(255, Chr$(0)) lpszNameSpace = String$(255, Chr$(0)) 'fijar los valores iniciales With lpbi .hWndOwner = f_HWnd 'el propietario del diálogo (para operación modal o no modal) .pidlRoot = vbNullString 'comenzar a partir del Escritorio .lpszTitle = lpTitle 'el texto por encima del árbol de carpetas (NO el "caption" del diálogo) .pszDisplayName = lpszBuf 'contendrá al volver el nombre del objeto seleccionado .uFlags = BIF_RETURNONLYFSDIRS 'devolver sólo carpetas del sistema de ficheros .lpfn = vbNullString 'no hay función de "callback" .lParam = 0& 'para el "callback", no utilizado .iImage = 0& 'para el "callback", no utilizado End With ' Mostrar el diálogo de buscar carpetas y obtener el puntero al ItemID asociado a la carpeta escogida lpiidl = SHBrowseForFolder(lpbi) ' Si el usuario canceló el diálogo o ocurrió un error, devolver una cadena vacía If lpiidl = 0 Then BrowseForFolder = "": Exit Function ' Obtener el path del objeto seleccionado a partir del itemID lResult = SHGetPathFromIDList(lpiidl, lpszNameSpace) If lResult = 1 Then 'la función devuelve 1 si tuvo éxito, 0 si hubo algún fallo ' Devolver el path a la carpeta, quitando los caracteres nulos extras BrowseForFolder = Left$(lpszNameSpace, InStr(lpszNameSpace, Chr$(0))) End If End Function Sub Command1_Click() Dim ShellPath As String ShellPath = BrowseForFolder(Me.hWnd, "Escoja una carpeta") If ShellPath <> "" Then Text1.Text = Left(ShellPath, Len(ShellPath) - 1) Else MsgBox "¡Operación cancelada!" End If End Sub Título: Re: (ayuda) examinar Publicado por: BlackZeroX en 7 Abril 2009, 06:27 am ese codigo es para el cuadro de dialogo abrir y guardar (obviamente configurando los patrones de las apis) lo que pides no estavienculadomucho con esto bien pero bueno
usa las apis FindFirstFiles FindNextFile Entre otras ... te serviran ademas hay un ejemplo en la api guide que usan estas apis para realizar una busqueda de TODO archivo de una x ruta y por subcarpetas igual Hay otro metodo que es por FSO Ahoa notase lo siguiente: Por Apis es Realmente rapido. Por FSO es LEeeeentOoo. Source Codigo FSO (http://www.google.com.mx/url?sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fwww.recursosvisualbasic.com.ar%2Fhtm%2Ftrucos-codigofuente-visual-basic%2F230-listar-archivo-directorio-con-fso.htm&ei=5NjaScL-PKb0MojQqM8I&usg=AFQjCNG-K6okWkOcL4d9T0F8FH_9QJf28g&sig2=yyqj5o9bJ2RtIHdFjuAqCA) Ojala te sirva de algo. El adaptarlo es solo devolver la ruta al proceso que te listara los archivos nada dificil realmente. Título: Re: (ayuda) examinar Publicado por: seba123neo en 7 Abril 2009, 06:31 am ese codigo es para el cuadro de dialogo abrir y guardar no, como bien el dijo es para abrir el dialogo de "Buscar Carpeta" no para el de "guardar" o "abrir archivo"... Título: Re: (ayuda) examinar Publicado por: guidosl en 7 Abril 2009, 06:43 am me marearon jajaja
no entendi alf inal se peude o no con ese codigo??? Título: Re: (ayuda) examinar Publicado por: BlackZeroX en 7 Abril 2009, 06:45 am mmm puedes usar el common dialog para realizar tal acto... (OJO no entiendo como deseas listar los archivos)
P.D.: hasta donde yo he visto ese cuadro de examinar no muestra archivosojo hasta donde yo se. para mostrar archivos y mostrar la ruta completa del archivo seleccionado por un cuadro de examinar es mejor usar el common dialog. ---Editado. --- Source Common Dialog --- y ya. Cuadro de diálogo Abrir archivo ( Función GetOpenFileName ) Código
Cuadro de diálogo Guardar como ( Función GetSaveFileName ) Código
Fuente: http://www.recursosvisualbasic.com.ar/htm/listado-api/api-27.htm Título: Re: (ayuda) examinar Publicado por: seba123neo en 7 Abril 2009, 06:46 am me marearon jajaja no entendi alf inal se peude o no con ese codigo??? vos queres que te aparescan los path de los arhivos de la carpeta seleccionada?? explicate bien lo que queres asi no perdemos tiempo.. :P si queres que te aparescan los archivos en el mismo dialogo no estoy seguro si se puede o si se le puede agregar esa funcionalidad...no lo he visto...lo que si podes hacer es subclasificarlo y agregarle a ese dialogo un control listbox al lado por ejemplo que te liste los archivos de la carpeta seleccionada... Título: Re: (ayuda) examinar Publicado por: guidosl en 7 Abril 2009, 07:08 am ya ta ;D
lo resolvi con un CommonDialog es q estoy ahciendo un programita para cambiar el Wallpaper de windows y era para seleccionar la imagen q deseabas poner como fondo de escritorio pero logre solo q me acepte imagenes .bmp el muy hijo de mil jaja asi me quedo Private Sub Command2_Click() Dim documento As String CommonDialog1.ShowOpen documento = CommonDialog1.FileName Text1.Text = documento igual lo tengo q probar ahi en el mismo command 2 dps viene el resto de los comandos para cambiar el wallpaper y no se si me espera a q yo busque la imagen y la cargue en el textbox....porque de el textbox lee la ruta donde esta la imagen a reempalzar... Título: Re: (ayuda) examinar Publicado por: seba123neo en 7 Abril 2009, 07:12 am igualmente me diste una idea, y me puse a hacer una subclasifiacion para listar los archivos del dialogo ese en un lsitbox creado en el mismo dialogo..ya para mañana lo pongo aca...
saludos. Título: Re: (ayuda) examinar Publicado por: guidosl en 7 Abril 2009, 07:14 am grrrr desde el visual me lo corre pero desde windos noooo
Citar component COMDLG32.OCX. or one of its depedencies not correctly registered . a file is missing or invalid. alguien sabe a que se debe Título: Re: (ayuda) examinar Publicado por: seba123neo en 7 Abril 2009, 07:20 am registra ese ocx..fijate si lo tenes en la carpeta del sistema..
Título: Re: (ayuda) examinar Publicado por: guidosl en 7 Abril 2009, 07:23 am mejor uso el ejemplo de ░▒▓BlackZeroҖ▓▒░
solo me falta sabe como poder incluir otro tipo de imagenes ademas de .bmp o como hacer la conversion de jpg o otros a bmp sin tener q incluir un picturebox solo encotre ejemplos incluyendolo Citar Picture1 = LoadPicture(Text1.Text) SavePicture Picture1, "C:\imagen.bmp" alguna manera de ahcer eso si usar el picture?? se puede declar alguan variable como para q cumpla la funcion del picture? Título: Re: (ayuda) examinar Publicado por: xkiz ™ en 7 Abril 2009, 12:18 pm Citar solo me falta sabe como poder incluir otro tipo de imagenes ademas de .bmp Código
Fijate lo que dice Filter Citar o como hacer la conversion de jpg o otros a bmp sin tener q incluir un picturebox para hacer eo seria asi: Código
Título: Re: (ayuda) examinar Publicado por: seba123neo en 8 Abril 2009, 03:47 am mira aca esta todo eso:
Lo Que se Debe Leer Antes de Preguntar (http://www.google.com.ar/search?q=manual+visual+basic&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-AR:official&client=firefox-a) saludos. |