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

Вниз

Disconnect ~ Connect   Найти похожие ветки 

 
Елена3000   (2002-01-11 23:43) [0]

Я ,наверное, не первая задаю этот вопрос, так что не ворчите, а помогите девушке :)
Так вот, как можно узнать подключён ли компьютер к интернету или нет? И как программно вызвать disconnect?


 
Ghost. ©   (2002-01-14 09:56) [1]

program Test_inet;

uses
Windows, WinSock, Messages;

var
WinClass: TWndClassA;
Inst, Handle, ComboBox1, Button1: Integer;
Msg: TMsg;
hFont: Integer;
addst:string;
j, jj, ChildHandle : integer;

function InInternet : boolean;
Var
i : integer;
S : string;
WSAData: TWSAData;
Host : PHostEnt;
begin
result:=false;
S := "delphi.mastak.ru";
i:=pos("http://", S); if i>0 then delete(S, 1, 7);
i:=pos("/", S); if i>0 then delete(S, i, 255);
if WSAStartup($101, WSAData) = 0 then
begin
Host := GetHostByName(@S[1]);
result := Host<>nil;
WSACleanUp;
end;
if not result then begin
S:="www.microsoft.com";
if WSAStartup($101, WSAData) = 0 then
begin
Host := GetHostByName(@S[1]);
result := Host<>nil;
WSACleanUp;
end;
end;
end;


{ Custom WindowProc function }
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
if (uMsg = WM_DESTROY) then halt;
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;

begin
{ ** Register Custom WndClass ** }
Inst := hInstance;
with WinClass do
begin
style := CS_CLASSDC or CS_PARENTDC;
lpfnWndProc := @WindowProc;
hInstance := Inst;
hbrBackground := color_btnface + 1;
lpszClassname := "MY_TESTWINDOW";
hCursor := LoadCursor(0, IDC_ARROW);
end; { with }
RegisterClass(WinClass);

{ ** Create Main Window ** }
Handle := CreateWindow("MY_TESTWINDOW", "Test",
WS_MINIMIZEBOX or WS_VISIBLE or WS_CAPTION or WS_SYSMENU,
237, 135, 544, 398, 0, 0, Inst, nil);

ComboBox1 := CreateWindow("STATIC", "", WS_CHILD or WS_VISIBLE,
86, 16, 246, 104, Handle, 0, Inst, nil);
UpdateWindow(Handle);
jj:=GetTickCount;
{ ** Message Loop ** }
while(GetMessage(Msg, Handle, 0, 0)) do
begin
j:=GetTickCount;
if j-jj > 3000 then begin
if (InInternet) then addst:="Мы сейчас в интернете"
else addst:="Нет связи с интернет";
SendMessage(ComboBox1,WM_SETTEXT,0,Longint(@addst[1]));
UpdateWindow(Handle);
jj:=GetTickCount;
end;
TranslateMessage(msg);
DispatchMessage(msg);
end; { with }
end.


 
Wonder ©   (2002-01-14 11:50) [2]

Это не есть правильно. Host не nil - это всего лишь говорит о том, что работает разрешение имен. А есть ли на самом деле связь с delphi.mastak.ru или c microsoft или с чем еще так не выяснишь.
Обратно: даже если функция возвратит nil, то это вовсе не означает, что нет связи с требуемым хостом. Это означает, что DNS правильно не работает/не настроен.



Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
1-90901
kull
2002-03-18 11:21
2002.03.28
Народ! срочно нужна помощь по Mail Slot!


1-90907
IronHawk
2002-03-15 22:46
2002.03.28
Как в StringGrid забросить данные из *.txt файла ?


3-90779
alexbl
2002-03-04 03:07
2002.03.28
ListBox


3-90806
RealVOV
2002-03-01 11:21
2002.03.28
Размер таблицы в формате Paradox ограничен всего 128 MB


1-90874
lipskiy
2002-03-16 16:40
2002.03.28
Как однозначно проверить, существует ли объект (создан ли, не испорчен ли)?