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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [VB6] Una ayuda con mi primer programa... plz :)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [VB6] Una ayuda con mi primer programa... plz :)  (Leído 7,281 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
[VB6] Una ayuda con mi primer programa... plz :)
« en: 13 Julio 2011, 18:04 pm »

Hola, a ver se que el programa es simple, no sirve mucho, por eso es ideal para ser el primero y hacer pruebas, tengo echo esto:



en la opción "archivo" hay otra que se llama "Elegir directorio", la idea es usar esa opción, se elige la carpeta, y me la guarda en "FName", que no se si llamarla variable o string, porque aún no entiendo bien las funciones básicas xD...

...Bueno eso ya lo he conseguido, después de obtener el "FName", la idea es darle al botón "Empezar", y lo que debería hacer es:

1º - si no encuentra ningún archivo con extensión ".msu", mandar un error, en un msgbox o como sea

2º -  que a la derecha del botón aparezca un contador con la cantidad de actualizaciones que hay en la carpeta seleccionada (Osea, la cantidad de archivos MSU)

3º - Ejecutar una a una (No todas a la vez) cada archivo con extensión ".msu"

4º - Que el contador vaya restando los archivos que ya se han instalado, (Por ejemplo  "Quedan 7 de 30 actualizaciones" 0 "7 de 30")

Y luego no tengo ni idea de como hacer funcionar la casilla de reiniciar pc, ya me he enterado de como reiniciar el pc con vb, pero no se como hacerlo cuando el comando "empezar" termine de instalar las updates...  :-\


Simplemente eso, ¿Alguien me ayuda?



EDITO: se me olvidaba, aqui el código entero, por si hace falta...

Código
  1.  
  2. Private Sub opendir_Click()
  3.   Dim FName As String
  4. FName = BrowseFolder(Caption:="Selecciona una carpeta")
  5. If FName = vbNullString Then
  6.    Debug.Print "No Folder Selected"
  7. Else
  8.    Debug.Print "Selected Folder: " & FName
  9. End If
  10. End Sub
  11.  
  12. Private Sub Check6_Click()
  13. If Check6.Value = 1 Then
  14.    Text6.Enabled = True
  15. ElseIf Check6.Value = 0 Then
  16.    Text6.Enabled = False
  17. End If
  18. End Sub
  19.  
  20.  
  21. Private Sub english_Click()
  22. Check6.Caption = "Reset PC after install updates."
  23. Frame1.Caption = "Additional options"
  24. opendir.Caption = "Open directory..."
  25. virus.Caption = "File"
  26. salir.Caption = "Exit"
  27. Sobre.Caption = "About..."
  28. Idioma.Caption = "Language"
  29. español.Caption = "Spanish"
  30. english.Caption = "English"
  31. End Sub
  32.  
  33. Private Sub español_Click()
  34. Check6.Caption = "Reiniciar PC después de instalar actualizaciones."
  35. Frame1.Caption = "Opciones adicionales"
  36. opendir.Caption = "Abrir directorio..."
  37. virus.Caption = "Archivo"
  38. salir.Caption = "Salir"
  39. Sobre.Caption = "Sobre..."
  40. Idioma.Caption = "Idioma"
  41. español.Caption = "Español"
  42. english.Caption = "Inglés"
  43. End Sub
  44.  
  45. Private Sub salir_Click()
  46. Unload Me
  47. End Sub
  48.  
  49. Private Sub Sobre_Click()
  50. MsgBox ("WinUpdates Installer 1.0" & vbNewLine & "" & vbNewLine & "By PiToLoKo" & vbNewLine & vbNewLine & "www.foro.elhacker.net")
  51. End Sub
  52.  


« Última modificación: 13 Julio 2011, 18:26 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [VB6] Una ayuda con miprimer programa... plz :)
« Respuesta #1 en: 13 Julio 2011, 18:34 pm »

HOLA!!!

Fname si es el NombreDelArchivo es una variable String.

(estos ejemplos te los hago como si la carpeta fuera C:\ y con cosas basicas)

1:
Código
  1. If Dir("c:\*.msu") = vbNullString Then
  2.    MsgBox "error no se encuentra archivo msu"
  3.    'esto yo lo haria con un If de una linea pero para empezar dejalo asi
  4. End If
  5.  

2:
Código
  1. Dim CT As Integer
  2. Dim archivo As String
  3.    archivo = Dir("c:\*.msu")
  4.    While archivo <> ""
  5.        'para buscar el siguiente archivo se usa dir solo
  6.        archivo = Dir
  7.        CT = CT + 1
  8.    Wend
  9.    lblTotal.Caption = Str(CT)
  10.    'CT es la cantidad de archivos
  11.  

3:
Código
  1. Dim archivo As String
  2.    archivo = Dir("c:\*.msu")
  3.    While archivo <> ""
  4.        'shell ejecuta
  5.        Shell archivo
  6.        'Esperar a que cierre un proceso es mas complicado, busca en el foro.
  7.        'ESTO EJECUTARA TODOS LOS MSU
  8.        'para buscar el siguiente archivo se usa dir solo
  9.        archivo = Dir
  10.    Wend
  11.  

4:
Código
  1. Dim archivo As String
  2.    archivo = Dir("c:\*.msu")
  3.    While archivo <> ""
  4.        'shell ejecuta msu
  5.        Shell archivo
  6.        'Suponemos que esperar al cierre del proceso es "EsperaCierre"
  7.        While esperacierre(archivo) = False
  8.            DoEvents
  9.            'doevents libera el procesador y lo deja ejecutar otras operaciones
  10.        Wend
  11.        'para buscar el siguiente archivo se usa dir solo
  12.        LblTerminados.Caption = Str(Val(LblTerminados.Caption +1))
  13.        archivo = Dir
  14.    Wend
  15.  

En cuanto a lo ultimo, hay mucha info para reiniciar la pc, solo deberias fijarte en el label cuando sea = el de terminados y el de totales.

Conste que hago la "tarea" por que he visto a pitoloko (odio ese nick) y parece que tiene ganas de aprender.

GRACIAS POR LEER!!!


« Última modificación: 13 Julio 2011, 20:21 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #2 en: 13 Julio 2011, 19:28 pm »

Gracias por tu tiempo, además con las explicaciones de lo que hace cada cosa ¡^^!  Trankilo, lo de pitoloko no es lo que te parece...  :P


voy por pasos, ya he arreglado el 1º, me ha costado un poco aunque al final he deducido como hacer funcionar mi string en tu ejemplo:

Código
  1. If Dir(FName & "\*.msu") = vbNullString Then
  2.    MsgBox "error no se encuentra archivo msu" & FName
  3. End If


El resto no consigo utilizarlos, pero comentaré solo el 3º, me da error de que no encuentra el archivo (Pero el archivo si que existe en esa ruta)

Código:
C:\Users\Administrador\Desktop\Windows6.1-KB2492386-x64.msu


Código
  1. Private Sub Command1_Click()
  2. Dim archivo As String
  3.    archivo = Dir("C:\Users\Administrador\Desktop\*.msu")
  4.    While archivo <> ""
  5.        Shell archivo
  6.        archivo = Dir
  7.    Wend
  8. End Sub
  9.  

¿Se te ocurre porque puede dar el error? :/

EDITO: ya se cual es el problema, "archivo" no coge el path entero, solamente el filename... ¿Como lo arreglo?  :xD No me deja utilizar el string FName... ese sería otro tema que me gustaría hablar, ¿Como guardo el string para usarlo en las demás funciones?

gracias por todo, iré aprendiendo
« Última modificación: 13 Julio 2011, 19:34 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #3 en: 13 Julio 2011, 19:36 pm »

Podes usar FSO. Aunque ya podes hacerlo asi, digamos

Código
  1. Private Sub Command1_Click()
  2. Const stPath As String = "C:\Users\Administrador\Desktop\"
  3. '---
  4. Dim archivo As String
  5.    archivo = Dir(stPath & "*.msu")
  6.    While archivo <> ""
  7.        Call Shell(stPath & archivo)
  8.        archivo = Dir
  9.    Wend
  10. End Sub
  11.  
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #4 en: 13 Julio 2011, 19:38 pm »

HOLA!!!

XD  :-X Eso me pasa por no testear.

Como dice raul hacelo asi tenes el path y el nombre de archivo.

FSO es lo mas lento que existe (ya se que dir no es rapido pero FSO es malisimo)

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #5 en: 13 Julio 2011, 19:44 pm »

Pues tampoco me funciona de la manera que dijo raul338  :-\

he probado:
Código:
msgbox stPath & archivo
Y la ruta es correcta, pero al usar:

Código:
Call Shell(stPath & archivo)

me da este error:

Código:
error '5'
llamada a procedimiento o argumento no válidos


PD: FSO = FSO file objects?
En línea

No he vuelto, solo estoy de paso.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #6 en: 13 Julio 2011, 20:12 pm »

HOLA!!!

Es por que no reconoce a los Msu como archivos ejecutables...

Lo solucionas usando ShellExecute (un api de windows)

Declara esto:
Código
  1. 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
  2.  

Y en donde dice shell reemplaza por esto:
Código
  1.        ShellExecute Me.hwnd, "open", stPath & archivo, vbNullString, "c:\", False
  2.        'Nota el path de ejecucion es este ^
  3.  

GRACIAS POR LEER!!!
« Última modificación: 13 Julio 2011, 20:21 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #7 en: 13 Julio 2011, 20:25 pm »

Perdona por ser pesado, pero es que es un problema tras otro :(

me da error el shellexecute
Código:
Procedimiento sub o funcion no definido.

he probado usando End private sub, lo único que se me ha ocurrido, pero nada.

Ahora mismo lo tenog colocado así:
Código
  1. Private Sub Command1_Click()
  2.  
  3. 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
  4. Const stPath As String = "C:\Users\Administrador\Desktop\"
  5. Dim archivo As String
  6.    archivo = Dir(stPath & "*.msu")
  7.    While archivo <> ""
  8.    MsgBox (FName & archivo)
  9.         ShellExecute Me.hwnd, "open", stPath & archivo, vbNullString, "C:\Users\Administrador\Desktop\", False
  10.        archivo = Dir
  11.    Wend
  12. End Sub
En línea

No he vuelto, solo estoy de paso.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #8 en: 13 Julio 2011, 20:28 pm »

HOLA!!!

No hay problema estas empezando, las apis se declaran fuera de los procedimientos (ahi la tenes dentro del command1_click()) Te recomiendo ponerlas en la parte superior del codigo.

Nota, se declaran fuera de los procedimientos por que son funciones las cuales tienen sus propios procedimientos internos, osea, vos podes declarar variables pero no subs ni functions dentro de otros procesos.

GRACIAS POR LEER!!!
« Última modificación: 13 Julio 2011, 20:31 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [VB6] Una ayuda con mi primer programa... plz :)
« Respuesta #9 en: 13 Julio 2011, 20:30 pm »

Acabo de ponerlo arriba del todo, me sigue dando el mismo error  :xD


 >:(

En línea

No he vuelto, solo estoy de paso.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mi primer programa con VB2008
.NET (C#, VB.NET, ASP)
ElBarney-D 1 2,884 Último mensaje 19 Abril 2008, 06:27 am
por seba123neo
Mi primer programa en VB « 1 2 »
Programación Visual Basic
Pedro_madrid 12 5,708 Último mensaje 31 Mayo 2008, 11:56 am
por Pedro_madrid
Mi primer programa..por asi llamarlo
Scripting
Warkanlock 9 4,753 Último mensaje 25 Diciembre 2009, 21:30 pm
por Banti
Mi primer programa en NASM
ASM
Debci 6 7,513 Último mensaje 2 Abril 2010, 13:23 pm
por Debci
(Ayuda) El primer código C++
Programación C/C++
xXxBazzxXx 4 2,825 Último mensaje 2 Junio 2013, 20:05 pm
por xXxBazzxXx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines