Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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 правильно не работает/не настроен.



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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
3-90761
alexandervasjuk
2002-03-01 11:36
2002.03.28
Транзакции в IBX


1-90832
Denvor
2002-03-15 21:45
2002.03.28
Excel2000


1-90995
-Stealtch-
2002-03-15 12:09
2002.03.28
Проблема прозрачности цвета в High Color


7-91084
WarChilD
2001-12-20 20:43
2002.03.28
Смена яркости на Рабочем столе


6-91008
Phobos
2002-01-12 16:28
2002.03.28
Вопрос по NMSTRM.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский