elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  (ayuda) examinar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: (ayuda) examinar  (Leído 5,224 veces)
guidosl

Desconectado Desconectado

Mensajes: 75


Ver Perfil
(ayuda) examinar
« 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


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #1 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

Ojala te sirva de algo.

El adaptarlo es solo devolver la ruta al proceso que te listara los archivos nada dificil realmente.


« Última modificación: 7 Abril 2009, 06:41 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #2 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"...

En línea

guidosl

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: (ayuda) examinar
« Respuesta #3 en: 7 Abril 2009, 06:43 am »

me marearon jajaja


no entendi alf inal se peude o no con ese codigo???
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #4 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
  1. Option Explicit
  2.  
  3. ' Función Api GetOpenFileName _
  4.  para abrir el cuadro de diálogo seleccionar archivo
  5. Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
  6.    Alias "GetOpenFileNameA" ( _
  7.    pOpenfilename As OPENFILENAME) As Long
  8.  
  9. ' Estructure de datos _
  10.   OPENFILENAME para usar con GetOpenFileName
  11. Private Type OPENFILENAME
  12.    lStructSize As Long
  13.    hwndOwner As Long
  14.    hInstance As Long
  15.    lpstrFilter As String
  16.    lpstrCustomFilter As String
  17.    nMaxCustFilter As Long
  18.    nFilterIndex As Long
  19.    lpstrFile As String
  20.    nMaxFile As Long
  21.    lpstrFileTitle As String
  22.    nMaxFileTitle As Long
  23.    lpstrInitialDir As String
  24.    lpstrTitle As String
  25.    flags As Long
  26.    nFileOffset As Integer
  27.    nFileExtension As Integer
  28.    lpstrDefExt As String
  29.    lCustData As Long
  30.    lpfnHook As Long
  31.    lpTemplateName As String
  32. End Type
  33.  
  34.  
  35. Private Sub Command1_Click()
  36. Dim OFName As OPENFILENAME
  37.  
  38.    With OFName
  39.        .lStructSize = Len(OFName)
  40.        'Establecemos el hwnd del form
  41.        .hwndOwner = Me.hWnd
  42.        'Establecemos el numero de instancia de la aplicacion
  43.        .hInstance = App.hInstance
  44.        'Establecemos el filtro de archivos a mostrar, _
  45.          en este caso txt y todos los ficheros
  46.        .lpstrFilter = "Archivos de texto (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _
  47.                       "Todos los archivos (*.*)" + Chr$(0) + "*.*" + Chr$(0)
  48.        'Acá debemos crear un buffer para el archivo
  49.        .lpstrFile = Space$(254)
  50.        'Establecemos el tamaño maximo retornado
  51.        .nMaxFile = 255
  52.        'Creamos un buffer para el titulo del archivo
  53.        .lpstrFileTitle = Space$(254)
  54.        'Establecemos el tamaño maximo retornado
  55.        .nMaxFileTitle = 255
  56.        'Establecemos el directorio por defecto que mostrará el dialogo
  57.        .lpstrInitialDir = "C:\Windows"
  58.        'El title
  59.        .lpstrTitle = "Abrir archivos"
  60.        'Flasgs que detereminan caracteristicas del dialogo
  61.        .flags = 0
  62.    End With
  63.  
  64.    'Abrimos el cuadro de diálogo pasándole _
  65.      a GetOpenFileName la estructura anterior
  66.    If GetOpenFileName(OFName) Then
  67.        MsgBox "Seleccionó: " + Trim$(OFName.lpstrFile)
  68.    Else
  69.        MsgBox "Se canceló"
  70.    End If
  71. End Sub
  72.  
  73. Private Sub Form_Load()
  74.    Command1.Caption = "Abrir CommonDialog"
  75. End Sub
  76.  

Cuadro de diálogo Guardar como ( Función GetSaveFileName )

Código
  1. Option Explicit
  2. 'Función Api GetSaveFileName que _
  3.  llama al cuadro guardar como de windows
  4. Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
  5.    Alias "GetSaveFileNameA" ( _
  6.    pOpenfilename As OPENFILENAME) As Long
  7.  
  8. ' UDT OPENFILENAME para el api GetSaveFileName
  9. Private Type OPENFILENAME
  10.    lStructSize As Long
  11.    hwndOwner As Long
  12.    hInstance As Long
  13.    lpstrFilter As String
  14.    lpstrCustomFilter As String
  15.    nMaxCustFilter As Long
  16.    nFilterIndex As Long
  17.    lpstrFile As String
  18.    nMaxFile As Long
  19.    lpstrFileTitle As String
  20.    nMaxFileTitle As Long
  21.    lpstrInitialDir As String
  22.    lpstrTitle As String
  23.    flags As Long
  24.    nFileOffset As Integer
  25.    nFileExtension As Integer
  26.    lpstrDefExt As String
  27.    lCustData As Long
  28.    lpfnHook As Long
  29.    lpTemplateName As String
  30. End Type
  31.  
  32. ' Variable para utilizar la estructura de la función Api
  33. Dim OFName As OPENFILENAME
  34.  
  35.  
  36. Private Function GuardarComo() As String
  37.  
  38.    With OFName
  39.        'Establecmos el tamaño de la extructura
  40.        .lStructSize = Len(OFName)
  41.        'Establecmos el hwnd de la aplicación, es decir _
  42.          la del form que llama al diálogo
  43.        .hwndOwner = Me.hWnd
  44.        'Acá la instancia
  45.        .hInstance = App.hInstance
  46.        'Establecemos los filtros de extension que mostrá
  47.        '.lpstrFilter = "Archivos de texto (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _
  48.                         "Todos los archivos (*.*)" + Chr$(0) + "*.*" + Chr$(0)
  49.        'Le pasamos un buffer al nombre de archivo
  50.        .lpstrFile = Space$(254)
  51.        'Debemos establecer el maximo de caracteres del buffer anterior
  52.        .nMaxFile = 255
  53.        'Lo mismo pero para el título del diálogo de windows
  54.        .lpstrFileTitle = Space$(254)
  55.        'Debemos establecer el maximo de caracteres del buffer
  56.        .nMaxFileTitle = 255
  57.        'Establecemos el drectorio inicial que mostrará el diálogo
  58.        .lpstrInitialDir = "C:\"
  59.        'Establecemos el titulo
  60.        .lpstrTitle = "Guardar archivo como"
  61.        'Los flags
  62.        .flags = 0
  63.    End With
  64.  
  65.    'Mostramos el dialogo pasandole la estructura a la función Api GetSaveFileName
  66.    If GetSaveFileName(OFName) Then
  67.        GuardarComo = Trim$(Replace(OFName.lpstrFile, Chr(0), ""))
  68.    Else
  69.        GuardarComo = ""
  70.    End If
  71. End Function
  72.  
  73. Private Sub Command1_Click()
  74. Dim sFile As String
  75.    'sFile almacenará el path completo que nos interesa
  76.    sFile = GuardarComo
  77.    'Comprobamos que no sea una cadena vacia
  78.    If sFile <> "" Then
  79.        MsgBox "Ruta elegida " + sFile
  80.    Else
  81.        MsgBox "Cancelar"
  82.    End If
  83. End Sub
  84.  
  85.  
  86. Private Sub Form_Load()
  87.    Command1.Caption = "Abrir CommonDialog"
  88. End Sub  
  89.  

Fuente: http://www.recursosvisualbasic.com.ar/htm/listado-api/api-27.htm
« Última modificación: 7 Abril 2009, 07:02 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #5 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...
« Última modificación: 7 Abril 2009, 06:51 am por seba123neo » En línea

guidosl

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: (ayuda) examinar
« Respuesta #6 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...



En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #7 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.
En línea

guidosl

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: (ayuda) examinar
« Respuesta #8 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
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (ayuda) examinar
« Respuesta #9 en: 7 Abril 2009, 07:20 am »

registra ese ocx..fijate si lo tenes en la carpeta del sistema..
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Examinar
Scripting
Geormarsch 4 4,489 Último mensaje 6 Febrero 2012, 16:27 pm
por Dany3j
como examinar el codigo de un virus « 1 2 »
Análisis y Diseño de Malware
crazykenny 10 9,702 Último mensaje 12 Noviembre 2013, 21:42 pm
por crazykenny
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines