Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Антивирус и прогресс бар


Автор: SnAKEen 4.2.2009, 00:42
В общем такая фишка.

Пользуюсь компонентом Indy для передачи файла на сервер.

Код

procedure TForm3.idhtp1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  g1.MaxValue := AWorkCountMax;
  Form1.cltrycn1.IconList := ImgSend;
  Form1.Timer1.Enabled := False;
end;

procedure TForm3.idhtp1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  g1.Progress := AWorkCount;
end;

procedure TForm3.idhtp1Disconnected(Sender: TObject);
begin
  Form1.Timer1.Enabled := true;
  Form1.cltrycn1.ShowBalloonHint('[Удаленное администрирование]','Даные были отправленны на сервер'+ #13#10 + 'администраторы будут уведомлены!',bitInfo,10);
end;


это код движет прогресс бар во время передачи...

так вот фишка в том что когда антивирус включен, то передача пролетает за долю секунды (данные сначала уходят в антивирус).
если антивирус отрубить, прогресс бар отрабатывает как положено (ползет в соответствии с передачей данных на сервер)...

Я конечно-же понимаю что прогресс бар тут ни причем...))))

Но может кто нить знает как обойти эту проблему...

Заранее благодарен Сергей. smile 

Автор: dumb 4.2.2009, 03:53
Цитата(SnAKEen @  4.2.2009,  00:42 Найти цитируемый пост)
может кто нить знает как обойти эту проблему
никак. как и в случае получения файла "через антивирус".

Автор: SnAKEen 4.2.2009, 08:56
Цитата(dumb @ 4.2.2009,  03:53)
Цитата(SnAKEen @  4.2.2009,  00:42 Найти цитируемый пост)
может кто нить знает как обойти эту проблему
никак. как и в случае получения файла "через антивирус".

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

Автор: dumb 5.2.2009, 14:57
нет никаких "технологий": есть специфика работы антивиря - например игнор udp-потоков, игнор файлов больше определенного размера, итд итп.

Автор: sai_NT 10.2.2009, 00:43
Практически уверен в том, что прогресс бар даунлоадеры отображают с расчетом 100% закачки - это 99% прогрессбара. И вот потом, когда файл уже скачан, он сохраняется последним куском на диск и закрывается хендл файла (FindClose). Потом происходит проверка на резалт этой функции и GetLastError , если ответ был false, но если он выдал true, то остается проверить наличие файла на диске и соответствие его размера закачанному контенту.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)