![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение включенности интернета [D7, XP]
Фоофа © (2008-09-22 17:04:00)Подскажте пожалса, как в делфи(как нистранно именно в нем Оо) написать опознование включенности интернета, заранее спс.
antonn (2008-09-24 08:54:00) [1]
> brother © (24.09.08 04:12) [18]
>
> зы и келпает очередного трояна(
у вас плохой телепатор, было неоднократно замечено.
brother (2008-09-24 04:12:00) [2]думаю, что автору [14] хватило вполне...
зы и келпает очередного трояна(
Германн (2008-09-24 01:48:00) [3]
> antonn © (24.09.08 01:37) [16]
>
>
> > А один из авторов статьи упорно "молчит в тряпочку". :
> )
>
> разве он не сказал - "никак"? :)
Сказал. А потом "замолчал в тряпочку". :)
antonn (2008-09-24 01:37:00) [4]
> А один из авторов статьи упорно "молчит в тряпочку". :)
разве он не сказал - "никак"? :)
Германн (2008-09-24 01:22:00) [5]
> Anatoly Podgoretsky © (22.09.08 21:19) [13]
>
> > Германн (22.09.2008 21:13:12) [12]
>
> Да ладно, это не так и важно и то что написано имеет право
> и вполне применимо.
>
А один из авторов статьи упорно "молчит в тряпочку". :)
JJ (2008-09-23 05:01:00) [6]Люди не хотят учиться говорить по русски, вот и не могут составить правильно свой запрос. А уж сил забить его в Яндекс у них не остаётся :)
Автору этого хватит выше крыши, пусть пробует всё что можно и экспериментирует:
Для работы Вам необходимо импортировать функцию InetIsOffline из URL.DLL:
function InetIsOffline(Flag: Integer): Boolean;
stdcall; external 'URL.DLL';
а затем поместить в программу простой вызов функции для проверки статуса соединения:
if InetIsOffline(0) then
ShowMessage('This computer is not connected to Internet!')
else
ShowMessage('You are connected to Internet!');
но ещё нужно учитывать, что функция эта выдает false не только, когда комп подключен к Интернету, но и когда ЕЩЕ НЕ БЫЛО ПОПЫТОК подключения (or if no attempt has yet been made to connect to the Internet), как сказано в официальной документации Microsoft по MSDN...
Да, умом Microsoft не понять!
- - -
const INTERNET_CONNECTION_MODEM = 1;
INTERNET_CONNECTION_LAN = 2;
INTERNET_CONNECTdState';
{$R *.DFM}
procedure TForm1.CheckState(Sender: TObject);
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes:=IC_MODEM+IC_LAN+IC_PROXY;
if InternetGetConnectedState(@dwConnectionTypes,0) then
ShowMessage('You connected')
else
ShowMessage('No Connection');
end;
- - -
{Static linking. }
uses
WinInet;
{...}
function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsConnectedToInternet then
ShowMessage('Connected.')
else
ShowMessage('Not Connected.')
end;
- - -
{Dynamic linking. }
function IsConnectedToInternet(lpdwFlags: LPDWORD): Boolean;
const
WininetDLL = 'wininet.dll';
var
hWininetDLL: THandle;
dwReserved: DWORD;
fn_InternetGetConnectedState: function(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall;
begin
Result := False;
dwReserved := 0;
hWininetDLL := LoadLibrary(WininetDLL);
if hWininetDLL > 0 then
begin
@fn_InternetGetConnectedState := GetProcAddress(hWininetDLL,'InternetGetConnectedState');
if Assigned(fn_InternetGetConnectedState) then
begin
Result := fn_InternetGetConnectedState(lpdwFlags, dwReserved);
end;
FreeLibrary(hWininetDLL);
end else
raise Exception.Create('Unable to locate function InternetGetConnectedState in library ' + WininetDLL);
end;
procedure TForm1.Button1Click(Sender: TObject);
const
INTERNET_CONNECTION_MODEM = 1;
INTERNET_CONNECTION_LAN = 2;
INTERNET_CONNECTION_PROXY = 4;
INTERNET_CONNECTION_MODEM_BUSY = 8;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
if IsConnectedToInternet(@dwConnectionTypes) then
ShowMessage('Connected.')
else
ShowMessage('Not Connected.')
end;
Anatoly Podgoretsky (2008-09-22 21:19:00) [7]> Германн (22.09.2008 21:13:12) [12]
Да ладно, это не так и важно и то что написано имеет право и вполне применимо.
Мне не нравится пункт 2, про первый с пингом я вообще не говорю.
Ну зачем использовать какой то сайт и прочее, обращаться надо именно к ресурсу.
А то толку, от тог, что page.html доступен, а мне то нужен page2.html
Надо просто не заморачиваться, а прямо обращаться к нужному режиму, и именно когда он нужен, а не два дня до этого и обрабатывать ошибки.
Все больше ничего не надо. Другое дело трояны на диалапе, вот тем надо незаметно попытаться передать данные, а каналом они не рулят.
Германн (2008-09-22 21:13:00) [8]
> Anatoly Podgoretsky © (22.09.08 20:59) [11]
А это не ко мне. Автор статьи где-то рядом :)
Anatoly Podgoretsky (2008-09-22 20:59:00) [9]> Германн (22.09.2008 20:28:10) [10]
> "А теперь - правда !"
Не правда, но направление к правде.
Германн (2008-09-22 20:28:00) [10]http://www.delphimaster.ru/articles/connect-inet.html
Leonid Troyanovsky (2008-09-22 19:37:00) [11]
> Anatoly Podgoretsky © (22.09.08 18:54) [8]
> Что такое Интернет.
Это реальная виртуальность.
--
Regards, LVT.
Anatoly Podgoretsky (2008-09-22 18:54:00) [12]> Фоофа (22.09.2008 17:04:00) [0]
Что такое Интернет.
ПРавильный$Вася (2008-09-22 18:17:00) [13]
> даже обратной ссылки на возвращение
боишься заблудиться?
Поросенок Винни-Пух (2008-09-22 18:09:00) [14]ну как это смысла нет?
вот выйдешь в инет без проверки его включенности - а там нет ничего.
даже обратной ссылки на возвращение.
KilkennyCat (2008-09-22 18:01:00) [15]
> разве токльо погадать попытками подключиться к какому-нибудь
> яндексу
нафига к яндексу, программулина же не просто наверное, выводит сообщение о есть-нет интернет. Пущай и коннектится туда, куда надо сразу.
И смысл в вопросе тут же отпадает.
Но все равно смысла в программе нет.
Потому чито с ошибками будет.
clickmaker (2008-09-22 17:21:00) [16]можно, разве что, проверить, есть ли в данный момент доступ к инету, функцией InternetAttemptConnect
Она еще может вывести диалог дозвона, если диалап
Правильный$Вася (2008-09-22 17:18:00) [17]если речь идет о сетевом подключении, конкретном, то можно проверить его наличие
но является ли это подключение выходом в интернет - разве токльо погадать попытками подключиться к какому-нибудь яндексу
Сергей М. (2008-09-22 17:07:00) [18]Никак.
Интеренет всегда "включен", вне зависимости от того странно тебе или нистранно. хочешь ты того или нех хочешь)
Поросенок Винни-Пух (2008-09-22 17:07:00) [19]function IsInetOn : boolean;
begin
Result := True;
if not Result then Result := True;
end;