ИНТЕРФЕЙСЫ API беспроводного пользовательского интерфейса

Windows 8, Windows Server 2012 и более поздних версий включают новую функцию диспетчер подключений, которая позволяет пользователям легко подключаться к Интернету и другим сетям (например, к рабочим и домашним сетям). Эта новая функция диспетчер подключений заменяет старые пользовательские интерфейсы "Подключение к сети" и "Управление беспроводными сетями", входящие в состав старых версий Windows для управления собственными подключениями Wi-Fi.

В Windows 7, Windows Server 2008 и Windows Vista существует ряд пользовательских интерфейсов, используемых для подключения к беспроводной сети или настройки ее. Эти пользовательские интерфейсы можно запустить в приложении с помощью собственных функций Wi-Fi и оболочки Windows. Эти пользовательские интерфейсы недоступны в 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.

В следующем коде показан вызов ShellExecute , который запускает мастер подключения к сети .

#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 для управления профилями беспроводной сети используется элемент Управление беспроводными сетями панель управления. Функцию ShellExecute также можно использовать для запуска элемента Управление беспроводными сетями . При вызове 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 .

Использование собственного Wi-Fi

Примеры профиля беспроводной связи

ShellExecute

WlanUIEditProfile