API беспроводного пользовательского интерфейса
Windows 8, Windows Server 2012 и более поздних версий включают новую функцию диспетчера подключений, которая позволяет пользователям легко подключаться к Интернету и другим сетям (например, рабочим и домашним сетям). Эта новая функция диспетчера подключений заменяет старые Connect к сети и Управление беспроводными сетями пользовательских интерфейсов, включенных в более старые версии Windows для управления подключениями Native Wifi.
В Windows 7, Windows Server 2008 и Windows Vista существуют ряд пользовательских интерфейсов (UIs), используемых для подключения к беспроводной сети или настройки сети. Эти пользовательские интерфейсы можно запустить в приложении с помощью функций Native Wifi и Windows Shell. Эти пользовательские интерфейсы недоступны в Windows 8, Windows Server 2012 и более поздних версиях.
Windows XP с ПАКЕТом обновления 3 (SP3) и API беспроводной локальной сети для Windows XP с пакетом обновления 2 (SP2): Вы не можете запустить пользовательский интерфейс, используемый для подключения или настройки беспроводной сети в приложении программным способом.
Подключение к сети
В Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 и Windows Vista Мастер подключения к сети можно использовать для установления подключения к беспроводной сети. Функцию ShellExecute можно использовать для запуска мастера Connect к сети.
В следующем коде показан вызов ShellExecute, который запускает мастер Connect к сети.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <shellapi.h>
// Need to link with shell32.lib
#pragma comment(lib, "shell32.lib")
void wmain()
{
ShellExecute(
NULL,
L"open",
L"shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}\\::{38a98528-6cbf-4ca9-8dc0-b1e1d10f7b1b}",
NULL,
NULL,
SW_SHOWNORMAL);
}
управление беспроводными сетями
В Windows 7, Windows Server 2008 и Windows Vista элемент Manage Wireless Networks Control Panel используется для управления профилями беспроводной сети. ФункциюShellExecute можно также использовать для запуска элемента Manage Wireless Networks. Путь к использованию при вызове ShellExecute в Windows 7 и Windows Vista приведен ниже.
shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\3\::{1fa9085f-25a2-489b-85d4-86326eedcd87}
.
В следующем примере кода показано, как использовать ShellExecute для запуска мастера управляемых беспроводных сетей из приложения.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
// Need to link with shell32.lib
#pragma comment(lib, "shell32.lib")
int wmain()
{
//-----------------------------------------
// Declare and initialize variables
HINSTANCE nResult;
PCWSTR lpOperation = L"open";
PCWSTR lpFile=
L"shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\\3\\::{1fa9085f-25a2-489b-85d4-86326eedcd87}";
nResult = ShellExecute(
NULL, // Hwnd
lpOperation, // do not request elevation unless needed
lpFile,
NULL, // no parameters
NULL, // use current working directory
SW_SHOWNORMAL);
if((int)nResult == SE_ERR_ACCESSDENIED)
{
wprintf(L"ShellExecute returned access denied\n");
wprintf(L" Executing the ShellExecute command elevated\n");
nResult = ShellExecute(
NULL,
L"runas", // Trick for requesting elevation
lpFile,
NULL, // no parameters
NULL, // use current working directory
SW_HIDE);
}
if ( (int) nResult < 32) {
wprintf(L" ShellExecute failed with error %d\n", (int) nResult);
return 1;
}
else {
wprintf(L" ShellExecute succeeded and returned value %d\n", (int) nResult);
return 0;
}
}
Дополнительные параметры для профилей беспроводной сети
Windows Vista и более поздних версий включают расширенный пользовательский интерфейс, используемый для просмотра и редактирования расширенных параметров профиля беспроводной сети. Этот расширенный пользовательский интерфейс можно запустить, вызвав функцию WlanUIEditProfile.
Связанные разделы