Как проверить и настроить сетевые подключения в Delphi. Новый API Windows 7.

23 Авг 2012 | Автор: | комментария 2 »

Всем большуйщий привет!!!

Сейчас я покажу вам способ проверки подключения к Интернет, который доступен пользователям Windows Vista , 7 и 8
Этот способ использует возможности Get Connected Wizard API - API настройки подключения. Все функции, которые экспортируются, содержаться в connect.dll .
Начинаем с самой простой функции - IsInternetConnected
Функция никаких параметров не содержит и, в случае успешного выполнения возвращает S_OK, если подключен пользователь к Интернет и в обратном случае S_FALSE.
Хочу отметить, что эта функция только лишь "угадывает" подключение к Интернет для пользователей, в работе используя NCSI и NLM. Хотя результат и носит несколько вероятностный характер, на моем компьютере проверка работы функции показала удовлетворительный результат - функция ни разу не ошиблась при проверке соединений.
Примечание: есть очень похожая функция и в URL.dll, эта функция называется IsInetOffline , которая проводит проверку на "отключенность" от Инета, но IsInetOffline не только возвращает false, когда компютер подключен к Интернету, но еще и когда попыток соединения не было, это делает использование данной функции для проверки подключения очень ненадежным.
Хочу привести пример как можно использовать функцию IsInternetConnected в Delphi:const
connect = 'connect.dll';
function IsInternet Connected: HRESULT; external connect name 'IsInternet Connected'; stdcall;
....
begin
if IsInternetConnected=S_OK then
ShowMessage('Подключен к Интернет')
end;

Для вызова мастеров создания используются различных подключений следующие функции и так как все они имеют одни и те же параметры, то я хочу ограничиться описанием параметров только лишь у первой функции. Итак все же начнем:
CreateVPNConnection
Функция для создания нового VPN-подключения вызывает мастера.
Функция в Delphi описана так:function Create VPNC onnection (hwndParent, dwWizardType, dwContextFlags, dwUserFlags, hUserContext: cardinal; pszCommandLine: PWideChar): HRESULT; stdcall; external connect name 'CreateVPNConnection';
Параметры функции:
дескриптор родительского окна - hwndParent;
стиль мастера подключения определяет- dwWizardType. Параметр этот необязательный и может по умолчанию принимать значение 0. Это же значение единственным является ,если судить по документации в MSDN.
dwContextFlags - контекстные флаги, которые определяют поведение мастера. По умолчанию значение - 0. Может одно из следующих значений принимать:
0 - мастер синхронно возвращает результаты
1 - мастер синхронно возвращает результаты а, используя для этого события Windows.
dwUserFlags - пользовательские флаги, которые определены в приложении. Можно по умолчанию устанавливать значение - 0;
hUserContext - это дескриптор потока вызывающего приложения. Можно выставить по умолчанию значение - 0.
pszCommandLine -это пользовательские параметры командной строки. Параметр может принять значение nil либо одно из следующих:
-HideFinishPage - страницу завершения работы мастера скрывает;
-SkipInternetDetection - скрывает страницу мастера, которая показывает определено ли у пользователя подобное соединение либо нет.
-SkipExistingConnections - скрывает страницу мастера, которая показывает список, всех существующих соединения. Этот параметр используется обычно при создании дополнительных подключений.
Привожу пример вызова функции:if CreateVPNConnected(0,0,0,0,0,nil)=S_Ok then
ShowMessage('Мастер вызван успешно');
Результатом вызова функции является:
GetInternetConnected
Запускает функция мастер подключения к Интернет. Список параметров такой же, как и у предыдущей функции. Результат вызова:
GetNetworkConnected
эта функция вызывает мастер подключения к локальной сети. Параметры такие же, что и у CreateVPNConnection. Результат вызова:
GetVPNConnected
Вызывает мастер создания VPN-подключения.
Эти пять функций, которые можно использовать для проверки и настройки с Интернет-соединения, подключения к локальной сети и создания VPN-подключения.Надеюсь вам сразу же стало все ясно и понятно если что то комментируем.

Все всем  пока и до скорого....

Метки записи: , , ,

Комментарии к записи " Как проверить и настроить сетевые подключения в Delphi. Новый API Windows 7."

Посмотреть последние комментарии
  1. Ну, это только тем, кто пишет сам приложения для "винды", остальным пользователям это не пригодится... Вот если б это ещё можно было бы использовать в bat-файлах, тогда простым пользователям тоже бы ла бы хоть какая-то польза. В то, что интернета нет (или есть) они и без использования Delphi увидят 🙂

  2. очень похожая функция есть и в URL.dll, которая называется IsInetOffline – проводит проверку на “отключенность” от Интернет, но IsInetOffline возвращает false не только, когда комп подключен к Интернету, но и когда ещё не было попыток соединения, что делает использование этой функции очень ненадежным для проверки подключения.

Здесь вы можете написать комментарий к записи "Как проверить и настроить сетевые подключения в Delphi. Новый API Windows 7.".

* Обязательные для заполнения поля
Все отзывы проходят модерацию.
Мы в VK
Наши партнеры
Читать нас
Связаться с нами
Наши контакты

info@windowsfan.ru

О сайте

Информационно-познавательный интернет журнал про Windows