Вверх ↑
Этот топик читают: Гость
Ответов: 301
Рейтинг: 11
#16: 2010-08-17 21:13:34 ЛС | профиль | цитата
kamakama писал(а):
Вот эта схемка при отключенном интернете показывает одни, а при включенном другие значения.

вообще- то физический адрес она через раз как нулевой показывает.
карма: 0

0
Ответов: 875
Рейтинг: 322
#17: 2010-08-17 21:20:07 ЛС | профиль | цитата
3042, обрати внимание на третью строку, т.е. Mtu при подключенном интернете значительно меняет значение.
карма: 1

0
Ответов: 3349
Рейтинг: 233
#18: 2010-08-17 21:45:52 ЛС | профиль | цитата
Внимательнее msdn читать надо.
msdn писал(а):
Return Value

Returns TRUE if there is an active modem or a LAN Internet connection, or FALSE if there is no Internet connection, or if all possible Internet connections are not currently active. For more information, see the Remarks section.

Вот

Add(MainForm,7509938,112,224)
{
link(onCreate,11816952:ac,[])
}
Add(InlineCode,11816952,161,238)
{
WorkPoints=#2:ac|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|37:uses kol,Share,Debug,wininet,windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|43: procedure ac(var dt:TData; index:word);|5: end;|0:|14:implementation|0:|25:procedure THiAsmClass.ac;|28:var dwConnectionTypes:DWORD;|36:const INTERNET_CONNECTION_MODEM = 1;|36: INTERNET_CONNECTION_LAN = 2;|5:begin|1: |105: if InternetGetConnectedState(@dwConnectionTypes,0)then MsgBox('Соеденен',0) else MsgBox('НеСоеденен',0);|4:end;|0:|4:end.|
}

------------ Дoбавленo в 21.45:
Вот самый оптимальный способ

Add(MainForm,7509938,112,224)
{
link(onCreate,11816952:ac,[])
}
Add(InlineCode,11816952,182,238)
{
WorkPoints=#2:ac|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|37:uses kol,Share,Debug,wininet,windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|43: procedure ac(var dt:TData; index:word);|5: end;|0:|14:implementation|0:|25:procedure THiAsmClass.ac;|28:var dwConnectionTypes:DWORD;|41:const INTERNET_CONNECTION_CONFIGURED = 1;|34: INTERNET_CONNECTION_LAN = 2;|36: INTERNET_CONNECTION_MODEM = 3;|38: INTERNET_CONNECTION_OFFLINE = 4;|36: INTERNET_CONNECTION_PROXY = 5;|33: INTERNET_RAS_INSTALLED = 6;|5:begin|19:dwConnectionTypes:=|27:INTERNET_CONNECTION_MODEM +|25:INTERNET_CONNECTION_LAN +|26:INTERNET_CONNECTION_PROXY;|115:if InternetGetConnectedState(@dwConnectionTypes, 0) then _debug('Ты в интернете') else _debug('Ты не в интернете');|4:end;|0:|4:end.|
}

карма: 1

0
Ответов: 1926
Рейтинг: 172
#19: 2010-08-18 07:30:21 ЛС | профиль | цитата
У меня возвращает True, если есть подключение к локальной сети. На сам Интернет внимания 0. Как и написано.

Самое главное здесь - правильно интерпретировать значение dwConnectionTypes. Ведь сюда возвращается подключение. Например, значение 10 может быть как INTERNET_RAS_INSTALLED, так и INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_MODEM_BUSY. Или нет?
карма: 9
0
Ответов: 3349
Рейтинг: 233
#20: 2010-08-18 07:36:53 ЛС | профиль | цитата
он устанавливает в виде флагов, вот с этим разобраться не могу.
Надо понять что такое 0x40
карма: 1

0
Ответов: 1926
Рейтинг: 172
#21: 2010-08-18 11:19:31 ЛС | профиль | цитата
Ivann писал(а):
Надо понять что такое 0x40


Наверное, это шестнадцатеричный код. Я не уверен. Но даже если это так, надо ещё решить, как из него получать значения самих флагов (INTERNET_CONNECTION_LAN и пр.). Сумма их должна равняться возращаемому числу.
карма: 9
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#22: 2010-08-18 11:27:19 ЛС | профиль | цитата
3042, мне кажется, что ты делаешь что-то не то, посмотри вот этот код, может подскажет тебе чего http://pavel2012.narod.ru/src/so/index.html. Там состояние проверки (State) назначается заранее, перед использованием функции.
карма: 22

0
Ответов: 3349
Рейтинг: 233
#23: 2010-08-18 11:36:25 ЛС | профиль | цитата
nesco, Я примерно так и сделал, но не пойму чем задать константы.
карма: 1

0
Ответов: 1926
Рейтинг: 172
#24: 2010-08-18 11:37:42 ЛС | профиль | цитата
nesco, это примерно то же, что показывал Ivann. Но дело в том, что если есть подключение к локалке, но нет к Интернету (т.е. на сайты заходить не могу), то ф-ция возвращает true.

Но зачем присваивать dwConnectionTypes значения в самом начале? От этого ничего не меняется! По сути, изменяться должна сама переменная dwConnectionTypes, т.е. в неё должно записывать нужное значение 9не вручную, а функция сама должна это делать), чтобы потом по нему определить тип подключения.
карма: 9
0
Ответов: 3349
Рейтинг: 233
#25: 2010-08-18 11:39:30 ЛС | профиль | цитата
Блин опять туплю
code_20070.txt
карма: 1

0
файлы: 1code_20070.txt [714B] [230]
Разработчик
Ответов: 26151
Рейтинг: 2127
#26: 2010-08-18 11:46:34 ЛС | профиль | цитата
3042, на тебе дешифратор битов

code_20071.txt
карма: 22

1
файлы: 1code_20071.txt [1.6KB] [210]
Голосовали:3042
Ответов: 1926
Рейтинг: 172
#27: 2010-08-21 09:54:43 ЛС | профиль | цитата
Компонент готов. Вот только остались некоторые непонятки с описанием.

Для константы INTERNET_CONNECTION_CONFIGURED в msdn такое описание:
Local system has a valid connection to the Internet, but it might or might not be currently connected.

Получается, действительное подключение есть, но может быть и не подключен. Что это означает?

Константа INTERNET_RAS_INSTALLED. А что такое RAS? Где можно почитать об этом? А то задаю в гугле RAS - он мне выдаёт Российскую академию наук.

Ну и, конечно, тестируйте компонент!
карма: 9
0
файлы: 1getconnectedstate10.rar [2.6KB] [327]
Ответов: 5446
Рейтинг: 323
#28: 2010-08-21 10:21:29 ЛС | профиль | цитата
RAS - Remote Access Service (служба удалённого подключения). Это модемы (dial-up, не adsl) и VPN (PPTP/PPPoE/L2TP) подключения
карма: 1

1
Голосовали:3042
Ответов: 1926
Рейтинг: 172
#29: 2010-08-21 12:42:21 ЛС | профиль | цитата
Сейчас важнго проверить, что показывает точка Configured. Вроде бы она и должна определять подключение к Интернету. У кого что показывает?
карма: 9
0
Ответов: 582
Рейтинг: 3
#30: 2010-08-21 13:01:59 ЛС | профиль | цитата
У меня вроде все правильно показывает
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)