+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 84.55 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

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

08.04.2011 15:04

В целом, тема, заявленная в посте далеко не нова - ответ на вопрос "Как в Delphi узнать, что компьютер подключен к Интернет?" на страничках из прошлого XX века. Но время оно не стоит на месте и программисты различного уровня подготовки предлагают самые различные способы проверки подключения компьютера к Интернет - от небольших листингов в 5-6 строчек кода, до умопомрачительных алгоритмов проверки.

И эти способы, вроде бы работают до сих пор и в Win 7 и в более старых версиях Windows. Расписывать все эти способы. думаю, смысла никого нет. Те кому они нужны - Google в помощь, или сразу вот такая ссылка с результатами запроса к Google.

Я же сегодня покажу ещё один из способов проверки подключения к Интернет, доступный пользователям Win Vista - 7.

Способ этот использует возможности Get Connected Wizard API - API настройки подключения. С помощью него можно, например, вызвать мастера настроек VPN, локальной сетки или, как в нашем случае - проверить подключение к Интернет.

Прежде, чем начнем знакомиться с API, ещё раз подчеркну - работа с API доступна под Windows Vista и выше . В более ранних версиях ОС работа невозможна.

Все экспортируемые функции содержаться в connect.dll .

Начнем с самой простенькой функции - IsInternetConnected

IsInternetConnected

Функция не содержит никаких параметров и, в случае успешного выполнения возвращает S_OK, если пользователь подключен к Интернет и S_FALSE в обратном случае.

Следует отметить, что эта функция только "угадывает" подключение к Интернет для пользователя, используя в работе NCSI и NLM. Хоть результат и носит некоторые вероятностный характер, проверка работы функции на моем компьютере показала удовлетворительный результат - функция не ошиблась ни разу при проверке соединений.

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

Пример использования функции IsInternetConnected в Delphi:

const
  connect = 'connect.dll';
 
function IsInternetConnected: HRESULT; external connect name 'IsInternetConnected';stdcall;
....
begin
  if IsInternetConnected=S_OK then
    ShowMessage('Подключен к Интернет')
end;

Следующие функции используются для вызова мастеров создания различных подключений и т.к. все они имеют одни и те же параметры, то я ограничусь описанием параметров только у первой функции. Итак

CreateVPNConnection

Функция вызывает мастера для создания нового VPN-подключения.

Описание функции в Delphi:

function CreateVPNConnection(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-подключения и подключения к локальной сети.

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года