Visual Basic - AYUDA PARA TERMINAR PROGRAMA

Life is soft - evento anual de software empresarial
 
Vista:

AYUDA PARA TERMINAR PROGRAMA

Publicado por MARKITOS (49 intervenciones) el 23/09/2005 16:33:32
Hola tengo un listbox en el que las opciones son los archivos de un determinado directorio.
Para que se listen, tengo un boton que al pulsarle, como decía, muestra los archivos del directorio definido en el listbox. Los archivos del directorio normalmente van a ser archivos *.doc , *.dot, *.xls, *.xlt, *.pdf.
La cuestión es que necesito abrir los archivos de ese directorio desde el ListBox, para ello suso el shell32 de windows pero no defino bien al hacer doble_click en el listbox ya que no me funciona el código ¿alguien puede corregirlo para que funcione?.
-------------------------------------------
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory _
As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Private Sub CommandButton1_Click()
directory = "C:\PROYECTOMAT\PERROS\MENSUAL\01\"
r = 1
f = Dir(directory, 16)
Do While f <> ""
r = r + 1
f = Dir()
ListBox1.AddItem f 'Esto añade el archivo actual en el ListBox
Loop
TextBox1 = "C:\PROYECTOMAT\PERROS\MENSUAL\01\"
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) ShellExecute UserForm58.WhatsThisMode, "open", ListBox1.Value, "", TextBox1, 0 ' FALLA.
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Corregido

Publicado por Zoto (41 intervenciones) el 24/09/2005 00:58:41
Hola MARKITOS.

Prueba a reemplazar el código que Falla, el del evento DblClick del ListBox1, por el siguiente:

Private Sub ListBox1_DblClick()
ShellExecute Me.hWnd, "open", ListBox1.List(ListBox1.ListIndex), "", TextBox1, SW_SHOWNORMAL ' FALLA.
End Sub

Lo que he corregido ha sido el primer parámetro, al cual le he dado el hwnd de la ventana que hace la llamada a ShellExecute (Me), y ListBox1.Value, el tercer parámetro lo he reemplazado por ListBox1.List(ListBox1.ListIndex), que toma el valor del elemento del ListBox seleccionado actualmente.

Como última corrección, he reemplazado el 0 del último parámetro, el cual sirve para decir el modo de muestra de la ventana, a la constante SW_SHOWNORMAL (con valor 1) para mostrar la ventana a modo normal.

Bueno, espero que te funcione ahora el código.

Hasta otra.

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Corregido ´NO FUNCIONA

Publicado por MARKITOS (49 intervenciones) el 27/09/2005 22:49:28
DA ERROR, PONE QUE NO SE ENCONTRÓ EL METODO O EL DATO MIEMBRO Y ME SEÑALA EN EL CÓDIGO "Me.hWnd". nO SE SI TENDRÁ QUE VER CON QUE PROGRAMA EN VISUAL BASIC DE WORD Y AL PONER ME. NO ME SALE LA OPCION hWnd Y POR ESO NO LA RECONOCE.
¿COMO PUEDO CORREGIRLO?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar