Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

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 правильно не работает/не настроен.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.016 c
7-91092           BFG                   2001-12-26 17:54  2002.03.28  
Мышь


1-90843           pusrg                 2002-03-14 20:40  2002.03.28  
Сохранение буфера обмена.


14-91065          EAlexander            2002-02-15 10:43  2002.03.28  
Небольшое предложение to Merlin


1-90924           dimonf                2002-03-13 13:41  2002.03.28  
Вопрос, как добиться уникальности MDI окна?


1-90956           som                   2002-03-14 14:53  2002.03.28  
Zip архивы