R@kot |
Отправлено: 07.01.2005, 02:07 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 32
|
Ребят, вот какая проблема: в проге нужно проверить имеется ли в данный момент подключение к Internet. Как мне уже советовали, использую функцию InternetGetConnectedState:
CODE |
#pragma link "wininet.lib"
//Проверка на наличие подключения к Internet
DWORD state1 = INTERNET_CONNECTION_MODEM;
DWORD state2 = INTERNET_CONNECTION_LAN;
DWORD state3 = INTERNET_CONNECTION_PROXY;
if ( !InternetGetConnectedState(&state1, 0) &&
!InternetGetConnectedState(&state2, 0) &&
!InternetGetConnectedState(&state3, 0)) {
MessageBox(0,"Отсутствует подключение к Internet!\t","Ошибка", MB_ICONSTOP);
return;
}
|
У меня стоит XP и всё работает нормально. НО! Стал проверять на 98-ых Виндах, а там какой-то глюк: на компе вообще нет модема, а функция говорит, что подключение к Инету "присутствует"
Или же ещё на одном компе (тоже с 98-ыми) — там модем хоть и стоит, но к Инету не подключался, а функция утверждает обратное.
Кстати, при проверке на 2000-ом всё работает правильно.
Подскажите, как можно исправить это в 98-ых или может быть есть ещё какой-нибудь способ проверить на подключение?
Пожалуйста, кому не лень!
|
|
Георгий |
Отправлено: 07.01.2005, 03:45 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
знаешь, сам никогда этими функциями не пользовался, но сделав поиск по форуму нашёл вот такое:
https://rxlib.ru/forums/index.php?ac...72501c0739598da
QUOTE |
QUOTE
GEDEON:
Как я понял из вопроса возникла необходимость проверять есть ли связь с Internat, так вот столкнувшись с этим вопросом и перерыв кучу инфы пришел к выводу, что наилучший способ для этого использовать функцию InternetCheckConnection() из библиотеки wininet.lib правда из Psdk. Подробности о ней можно почитать в MSDN. А вот кусок кода который я использую для проверки, работает наиболее правдиво из всего, что я перепробовал:
CODE
#include //взят из SDK
#pragma comment(lib, "C:\Program Files\Borland\CBuilder6\Lib\Psdk\wininet.lib")
bool OnLine = false;
DWORD state = FLAG_ICC_FORCE_CONNECTION;
OnLine = InternetCheckConnection (NULL,state,0);
QUOTE
Первый параметр может быть конкретный адрес, а если так то он проверяет связь с каким-то быстрым Мелкомягким сервером.
|
Отредактировано Георгий — 07/01/2005, 04:51 |
|
Gedeon |
Отправлено: 11.01.2005, 13:21 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Там вообще говоря песня гораздо веселее, действительно поищите по форуму, есть особенности, при разных подключениях, мы уже обсуждали это раньше, ну а если не получится, тогда еще пообсуждаем .
|
|
|