Перейти к содержанию

Программа-загрузчик(1)


Рекомендуемые сообщения

Зачем вам все эти бесполезные кастыли в виде WinAPI?

Ребят - используйте cURL - либа кроссплатформенная и возможностей масса.

Как скачать файл с помощью cURL? Да легко - http://stackoverflow.com/questions/1636333/download-file-using-libcurl-in-c-c

Даже софтина есть для автоматической сборки cURL под винду - https://github.com/blackrosezy/build-libcurl-windows

Оф. сайт либы - http://curl.haxx.se/libcurl/

Ссылка на комментарий
Поделиться на другие сайты

Я тему прочитал и могу посоветовать пойти и изучить, как работают сетевые протоколы и что значит "Скачать файл". Уметь работать с сетью - это полезно. А сидеть и пытаться разобрать чужой код, не понимая как он работает - бессмысленно, по-моему.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Так уж вышло, что приходится создавать новую тему. 

Некоторое время назад я пытался создать программу-загручик файлов с постоянно изменяющейся ссылкой, тема вот тут.

В той теме мне помогли, даже скинули готовый исходник программы, но, к сожалению, на rghost файлы не хранятся так долго и сейчас файл удален.

Проблема заключается в том, что сейчас код, который был написан - потерял свой вид и некоторые инклуды из него так же исчезли, что сделало его не рабочим.

#include #include #include #include #pragma comment(lib,"wininet")int i = 0;bool DownloadFile(char* szUrl, char* szPath){HINTERNET hOpen = NULL;HINTERNET hFile = NULL;HANDLE hOut = NULL;char* lpBuffer = NULL;DWORD dwBytesRead = 0;DWORD dwBytesWritten = 0;hOpen = InternetOpen("MyAgent", NULL, NULL, NULL, NULL);if (!hOpen) return false;hFile = InternetOpenUrl(hOpen, szUrl, NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE, NULL);if (!hFile) {InternetCloseHandle(hOpen);return false;}hOut = CreateFile(szPath, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, NULL, NULL);if (hOut == INVALID_HANDLE_VALUE){InternetCloseHandle(hFile);InternetCloseHandle(hOpen);return false;}do {lpBuffer = new char[2000];ZeroMemory(lpBuffer, 2000);InternetReadFile(hFile, (LPVOID)lpBuffer, 2000, &dwBytesRead);WriteFile(hOut, &lpBuffer[0], dwBytesRead, &dwBytesWritten, NULL);delete[] lpBuffer;lpBuffer = NULL;} while (dwBytesRead);CloseHandle(hOut);InternetCloseHandle(hFile);InternetCloseHandle(hOpen);return true;}int Start(){start:char Path[MAX_PATH];char strURL[MAX_PATH] = "http://rghost.ru/download/68vBbLW9C/19ac08e7d180849ffcf9ea77b4fbf4c5ea812587/Dx11_ModelLogger%20x64.dll";sprintf_s(Path, "Dx11_ModelLogger__%i.dll", i);//sprintf_s(strURL, "http://*************/files/VideoFile_%i.avi",i);if (DownloadFile(strURL, Path)){i++;printf("SaveFile::%s \n", Path);_asm jmp start}elsereturn 0;}int main(){SetConsoleTitle("[DEMO]RockHammer");Start();getch();return 0;}

Если кто может восстановить исходники или обмануть rghost - пожалуйста, отпишитесь.

Спасибо.

Изменено пользователем RockHammer
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.