Autor
|
Tema: Descargar y Ejecutar EXE (Leído 3,172 veces)
|
Lupin
Desconectado
Mensajes: 153
|
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
|
|
|
En línea
|
|
|
|
EddyW
|
¿?
Coloca el código que estas usando.., para ejecutar el archivo.
SaluDOS!!!
|
|
|
En línea
|
|
|
|
Lupin
Desconectado
Mensajes: 153
|
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", & , & , 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)
|
|
|
En línea
|
|
|
|
EddyW
|
No esta todo el code (Usa el code en las etiquetas [cod e][/co de) 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!!!
|
|
|
En línea
|
|
|
|
seba123neo
|
simple, no uses esa api...usa descarga asyncrona...
|
|
|
En línea
|
|
|
|
|
Lupin
Desconectado
Mensajes: 153
|
Upps lo siento 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...
|
|
|
En línea
|
|
|
|
Lupin
Desconectado
Mensajes: 153
|
Bueno...no he encontrado la respuesta a este dilema...lo unico que me queda es crear un bat para que ejecute el archivo descargado...
|
|
|
En línea
|
|
|
|
Lupin
Desconectado
Mensajes: 153
|
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...
|
|
|
En línea
|
|
|
|
|
|