Descargar y Ejecutar EXE

Iniciado por Lupin, 20 Marzo 2010, 00:14 AM

0 Miembros y 3 Visitantes están viendo este tema.

Lupin

Hola
Estoy descargando un archivo usando URLDownloadToFile y como es un proceso asincrono una vez terminado la descarga (o mejor dicho en la siguiente linea ) lo ejecuto usando la api CreateProcess pero sin embargo no se ejecuta :No obstante el archivo si ha llegado a descargarse completamente y solo lo puedo ejecutar cuando termino el programa...He oido que los antivirus  bloquen este proceso pero a mi no me ha saltado ni un aviso ni nada parecido..¿Alguna idea? O es k tengo que crearle un Bat o algo parecido..Gracias  :silbar:

EddyW

¿?

Coloca el código que estas usando.., para ejecutar el archivo.

SaluDOS!!!

Lupin

Bueno gracias por el interes alli va :

DescargarActualizacion ("http://dddft.es/B.exe") ' Descargo mi file

Dim pInfo As PROCESS_INFORMATION  ' Ejecuto el file
         Dim sInfo As STARTUPINFO
         Dim sNull As String
         Dim lSuccess As Long
         Dim lRetValue As Long

         sInfo.cb = Len(sInfo)
         lSuccess = CreateProcess(sNull, _
                                 App.Path + "\B.exe", _
                                 ByVal 0&, _
                                 ByVal 0&, _
                                 1&, _
                                 NORMAL_PRIORITY_CLASS, _
                                 ByVal 0&, _
                                 sNull, _
                                 sInfo, _
                                 pInfo)


Tambien he usado :

Dim xx As Long
xx = ShellExecute(Me.hwnd, "Open", App.Path + "\B.exe", &O0, &O0, SW_NORMAL)

Pero  la descargar el archivo exe , sale sin su icnono asociado, y recien cuando termino el programa  recien se ve el icono y alli recien se peude ejecutar (manualmente claro)

EddyW

No esta todo el code :P
(Usa el code en las etiquetas [code][/code)

Intentaste usando "Shell (Ruta.)"
Al ejecutar tu programa coloca un timer que compruebe el tamaño del archivo que estas bajando, y lo muestre en el titulo del form asi sabrás si el archivo se descargo completo..

SaluDOS!!!

seba123neo

simple, no uses esa api...usa descarga asyncrona...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

BlackZeroX


Descargar y ejecutar SIN APIS:

http://infrangelux.sytes.net/index.php?option=com_content&task=view&id=92&Itemid=87

El código de la liga ya lo postee en este foro

Sangriento Infierno Lunar
The Dark Shadow is my passion.

Lupin

Upps lo siento  ;D ;D bueno el codigo basicamente es esto..y en forma aislada funciona normalmente

DescargarActualizacion ("http://dddft.es/B.exe") ' Descargo mi file

Dim pInfo As PROCESS_INFORMATION  ' Ejecuto el file
         Dim sInfo As STARTUPINFO
         Dim sNull As String
         Dim lSuccess As Long
         Dim lRetValue As Long

         sInfo.cb = Len(sInfo)
         lSuccess = CreateProcess(sNull, _
                                 App.Path + "\B.exe", _
                                 ByVal 0&, _
                                 ByVal 0&, _
                                 1&, _
                                 NORMAL_PRIORITY_CLASS, _
                                 ByVal 0&, _
                                 sNull, _
                                 sInfo, _
                                 pInfo)

Sub DescargarActualizacion(Url As String)
    Call URLDownloadToFile(0, Url, App.Path & "\B.exe", 0, 0)
End Sub



El archivo se descarga completamente lo se pork al terminar el programa manualmente recien aparece el icon del exe descargado..y se comporta normalmente
Es como si el archivo siguiera abierto en modo de escritura binaria y esperara que el proceso se acabe para cerrarse.
Incluso he llegado a suspender la ejecucion unos segundos para el proceso  se de un respiro y luego ejecute el exe pero nada...

Lupin

Bueno...no he encontrado la respuesta a este dilema...lo unico que me queda es crear un bat para que  ejecute el archivo descargado...

Lupin

Bueno no lo comprendo...debe ser un problema en la descarga me imagino eso de descargar y ejecutar se ve muy sospechoso..

Gracias BlackZeroX▓▓▒▒░░ me ha servido tu idea...me funciona a la perfeccion
solo te tengo una pregunta  ¿el codigo que mencionas es portable,...o necesito cargar con alguna libreria o ocx en particular? digo esto porque no quisiera bindear alguna libreria...