Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почкму при запуске через D7 нет ошибки, а при обычном запуске ест [D7, NT4, 2000, XP]


STK ©   (2006-01-18 20:43:00) 

Проблема вот в чём:
При запуске этого кода в потоке:
 NetHandle := InternetOpen('Microsoft Internet Explorer 6.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if nethandle <> nil  then //Assigned(NetHandle) then
   for i:= 17 to 20 do
     FileName := 'C:\Save\'+url+'.abc';
     url := ' http://www.hlam.ru/'+url+'.abc';
(*1*)      UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
       if Assigned(UrlHandle) then
         begin // UrlHandle правильный? Начинаем загрузку
// здесь идёт загрузка файла
           if UrlHandle <> nil then
         InternetCloseHandle(UrlHandle);  UrlHandle := 0;
           Close(f);
         end
       else begin
         if InternetCloseHandle(UrlHandle) = False then showMessage('Closehandle(urlhandle) = False')
         else showMessage('Closehandle(urlhandle) = True');
// UrlHandle неправильный. Генерируем исключительную ситуацию.
         showMessage('Нет Урлы');
         raise Exception.CreateFmt('Cannot open URL %s', [Url]);
        exit;
      end;
  end
 else begin
           showMessage('Нет сессии');
// NetHandle недопустимый. Генерируем исключительную ситуацию
//   raise Exception.Create('Unable to initialize Wininet');
//             break;
  end;
  if NetHandle <> nil then
  InternetCloseHandle(NetHandle); // закрываем сессию

Проблема в том, что если нет инет соединения, т.е. комп не подключен к инету, то в точке (*1*) UrlHandel = nil. И при закрывании программы возникает ошибка 1400 "Неверный дескриптор окна", как я понимаю это хендел типа создался, но закрыться с открытым хендлом прога не может.
Может мне просто проверить на присутствие инета сейчас, на время скачивания. Но как же быть если инет пропадёт во время самого скачивания? Если не понятно могу пояснить.
Но если есть инет то всё скачивается замечательно, без проблем.


STK   (2006-01-19 02:01:00) [1]

Да по ходу дела придётся самому тут ковырять.


Наверх

Титульная страница Поиск, карта сайта Написать письмо