Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

Как понять я уже в инете или еще нет?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
1-92596
Gari
2002-10-16 08:33
2002.10.28
Инспектор объектов


1-92585
irmantukas
2002-10-16 18:41
2002.10.28
Ребята помогите с StringGrid ом


8-92612
Deadlock
2002-06-30 05:30
2002.10.28
Тормоза DelphiX


1-92552
wer
2002-10-16 13:32
2002.10.28
Цвет caption


7-92750
Zombik666
2002-08-21 20:30
2002.10.28
Double-click