Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


ganselo, Ух, класс, здорово. Получилось. Задача макси решена.

А как теперь реализовать эту часть?
Цитата Drongo:
чтобы программа скачала только те модули, которые новее тех, которые присутствуют рядом с программой »
И как правильно сделать ход загрузки? По логике я должен узнать размер файла в байтах и задать это значение ProgressBar. Только, как я понял, CreateFile создаёт файл на диске и поэтому если так делать как я делаю, будет нулевой размер, а как правильн узнать размер скачиваемого файла, дату создания и имя?
Код: Выделить весь код
...
   if(data.bFlag) //осуществляется докачка
      InternetSetFilePointer(hInetFile, GetFileSize(hFile, NULL), NULL, FILE_BEGIN, 0); //сдвигаем чтение на GetFileSize бит

   // Ход загрузки
   Form1->ProgressBar1->Position = 0;
   Form1->ProgressBar1->Max = GetFileSize(hFile, NULL);

   //начинаем скачку
   do{
      Form1->ProgressBar1->StepIt(); // Добавил ход загрузки

      InternetReadFile(hInetFile, ReadBuf, sizeof(ReadBuf), &dwRead); //читаем в буффер
      if(dwRead >= 0){ //если считали
         ovlp.hEvent     = NULL;
	 ovlp.OffsetHigh = NULL;
	 ovlp.Offset     = GetFileSize(hFile, NULL);
         WriteFile(hFile, ReadBuf, dwRead, NULL, &ovlp); //пишем в наш файл
	 dwOffset += dwRead;
	}
      else{ //не считали, пытаемся повторить скачивание
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 15:09, 16-04-2010 | #11