Главная страница
    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.006 c
1-90974
gek
2002-03-15 08:24
2002.03.28
Как лучше организовать...


14-91034
Eto
2002-02-11 16:14
2002.03.28
Преимущества Delphi перед С++ Builder ?


4-91102
Mirovodin
2002-01-28 12:38
2002.03.28
Таблица импорта


3-90767
Demon ltd
2002-03-02 00:00
2002.03.28
Удаление из таблиц


1-90981
DSR
2002-03-15 10:01
2002.03.28
Как изменить свойство компонента если известен только его тип...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский