Форум: "Сети";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизКак понять я уже в инете или еще нет? Найти похожие ветки
← →
FATman (2002-08-27 23:02) [0]Вобщем то субж. Как мне программно определить подключен ли я к инету или нет. если подключен то делаю то-то если нет то еще чего-нить делаю.
Заранее спасибо!
← →
Ihor Osov'yak (2002-08-28 01:03) [1]А что такое инет? Поверь, однозначного ответа нет.
Пример - у твоего провайдера загнулся прокси или dns. Ты к нему получил коннект. Так вот вопрос - ты в инете или нет?
Более менее корректный способ - пропинговать (или попытатся подсоединится к удаленому постоянно работающему серверу, ну хотя бы www.microsoft.com) ...
Но это уже пункт 2. Для п1 можно воспользоватся этим:
type
TConDescription = ( cdModem, { Local system uses a modem to connect to the Internet }
cdLan, { Local system uses a local area network to connect to the Internet }
cdUsesProxy, { Local system uses a proxy server to connect to the Internet }
cdModemBusy, { not used }
cdRasInstalled, { Local system has RAS installed }
cdOffline, { Local system is in offline mode }
cdConfigured { Local system has a valid connection to the Internet,
but it may or may not be currently connected }
);
TConDescriptions = set of TConDescription;
const
winetdll = "wininet.dll";
{ from the W2K SDK }
function InternetGetConnectedStateEx(lpdwFlags: LPDWORD;
lpszConnectionName: LPSTR;
dwNameLen: DWORD;
dwReserved: DWORD): BOOL;
stdcall; external winetdll name "InternetGetConnectedStateExA";
function inet_IsConnected(var ConDes: TConDescriptions; var sConName : string): boolean;
var
dwCTp : DWORD;
Buffer : array[0..MAX_PATH - 1] of char;
begin
dwCTp := 0;
Result := InternetGetConnectedStateEx(@dwCTp, Buffer, Sizeof(Buffer)-1, 0);
if Result then sConName := StrPas(Buffer);
ConDes := [];
if ( (dwCTp and INTERNET_CONNECTION_CONFIGURED ) > 0 )
then Include(ConDes, cdConfigured );
if ( (dwCTp and INTERNET_CONNECTION_LAN ) > 0 )
then Include(ConDes,cdLan);
if ( (dwCTp and INTERNET_CONNECTION_MODEM ) > 0 )
then Include(ConDes, cdModem );
if ( (dwCTp and INTERNET_CONNECTION_OFFLINE ) > 0 )
then Include(ConDes,cdOffline );
if ( (dwCTp and INTERNET_CONNECTION_PROXY ) > 0 )
then Include(ConDes,cdUsesProxy );
if ( (dwCTp and INTERNET_RAS_INSTALLED ) > 0 )
then Include(ConDes,cdRasInstalled);
end;
Зы - если не ошибаюсь - InternetGetConnectedStateExA появляется при установке IE5.0 и выше ....
Если IE4 - юзай это
function inet_IsConnected: boolean;
var
dwConnectionTypes : DWORD;
begin
dwConnectionTypes := 0;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
← →
Anatoly Podgoretsky (2002-08-28 01:09) [2]Правильно пинговать www.microsoft.com именно со смайликом
← →
Reindeer Moss Eater (2002-08-28 07:57) [3]если подключен то делаю то-то если нет то еще чего-нить делаю.
Делай все наоборот. Если что-то получается делать - ты в инете. Если нет - нет. :)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c