Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ricardovinzo en 31 Julio 2008, 19:50 pm



Título: que APIs necesito para...
Publicado por: ricardovinzo en 31 Julio 2008, 19:50 pm
Saludos, bueno queri saber que APIs son necesarias para descargar n archivo como la API URLDownloaToFile??.. solo especifiquenme si pueden señores las API lo demas me voy para el API Guide y google...

Pero porfa sean lo mas sertero posible! :D

Gracias


Título: Re: que APIs necesito para...
Publicado por: cobein en 31 Julio 2008, 20:29 pm
InternetOpen ,InternetOpenUrl , InternetReadFile, InternetCloseHandle 


Título: Re: que APIs necesito para...
Publicado por: chrominum en 31 Julio 2008, 22:05 pm
Crea un nuevo classmodule con este código y ponle el nombre clsDownload:

Código
  1. Option Explicit
  2.  
  3. Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
  4.        "URLDownloadToFileA" (ByVal pCaller As Long, _
  5.        ByVal szURL As String, _
  6.        ByVal szFileName As String, _
  7.        ByVal dwReserved As Long, _
  8.        ByVal lpfnCB As Long) As Long
  9.  
  10. Private Declare Function InternetOpen Lib "wininet" Alias _
  11.        "InternetOpenA" (ByVal sAgent As String, _
  12.        ByVal lAccessType As Long, _
  13.        ByVal sProxyName As String, _
  14.        ByVal sProxyBypass As String, _
  15.        ByVal lFlags As Long) As Long
  16.  
  17.  
  18. Private Declare Function InternetCloseHandle Lib "wininet" _
  19.        (ByVal hInet As Long) As Integer
  20.  
  21.  
  22. Const INTERNET_OPEN_TYPE_PRECONFIG = 0
  23. Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000
  24. Const INTERNET_OPEN_TYPE_DIRECT = 1
  25. Const INTERNET_OPEN_TYPE_PROXY = 3
  26. Const INTERNET_FLAG_RELOAD = &H80000000
  27.  
  28.  
  29.  
  30. Public Function Get_File(sURLFileName As String, _
  31.                         sSaveFileName As String) As Boolean
  32.    Dim lRet As Long
  33.    On Error GoTo err_Fix
  34.  
  35.    lRet = InternetOpen("", INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
  36.    lRet = URLDownloadToFile(0, sURLFileName, sSaveFileName, 0, 0)
  37.    Get_File = True
  38.    Exit Function
  39. err_Fix:
  40.    Debug.Print Err.LastDllError, lRet
  41.    Err.Clear
  42.    Get_File = False
  43. End Function

Luego para descargar el archivo pon este codigo donde quieras

Código
  1.    Dim obj As clsDownload
  2.    Set obj = New clsDownload
  3.    Dim bRet As Boolean
  4.  
  5.    bRet = obj.Get_File(Trim("url"), Trim("direccion donde guardar"))
  6.    If bRet = False Then msgbox "Error!!!"
  7.    Screen.MousePointer = vbDefault
  8.    Set obj = Nothing


Título: Re: que APIs necesito para...
Publicado por: cobein en 31 Julio 2008, 22:39 pm
Que es ese mamarracho!!!!???

para que inicias la funciones de internet con InternetOpen si no es necesario? aparte el nunca cerras el handle y para peor nada de eso es necesario si vas a usar URLDownloadToFile

Del Api-Guide:
Código:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function
Private Sub Form_Load()
    'example by Matthew Gates (Puff0rz@hotmail.com)
    DownloadFile "http://www.allapi.net", "c:\allapi.htm"
End Sub


Título: Re: que APIs necesito para...
Publicado por: chrominum en 31 Julio 2008, 23:29 pm
puse lo primero que encontré en internet para el chico, no hace ponerse así, para una vez que hago algo de provecho  :¬¬ :xD