Salut à tous,
Je me suis arraché les cheveux toute la journée pour tenter de recoder le gestionnaire Wifi de Windows. Je gère pratiquement tous les fonctions de l'API Wlanapi de Microsoft, sauf une fonction pour me connecté avec un profile existant. Avec la fonction WlanConnect, j'arrive à me connecté sur un réseau non sécurisé (réseau publique style Freewifi), mais pas sur un réseau sécurisé par clé de cryptage et ayant un fichier profile (Document XML) comme le mien. Voici mon code:
J'essaye de suivre pas à pas les instructions sur le site de MSDNA (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx), mais rien n'y fait, j'obtiens toujours un ERROR_INVALID_PARAMETERS. Pourtant, je lui donne bien mon handle de connexion ouvert avec WlanOpenHandle(), le GUID de mon interface wifi et ma structure. Je pense que le problème viens surtout lorsque je remplis ma structure WLAN_CONNECTION_PARAMETERS connect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 int connect_user(HANDLE handle, const GUID *id, PWSTR strxml) { DWORD error = ERROR_SUCCESS; WLAN_CONNECTION_PARAMETERS connect; connect.wlanConnectionMode = wlan_connection_mode_temporary_profile; connect.strProfile = strxml; connect.pDot11Ssid = NULL; connect.pDesiredBssidList->Header.Type = NDIS_OBJECT_TYPE_DEFAULT; connect.pDesiredBssidList->Header.Revision = DOT11_BSSID_LIST_REVISION_1; connect.pDesiredBssidList->Header.Size = sizeof(DOT11_BSSID_LIST); connect.pDesiredBssidList->uNumOfEntries = 3; connect.pDesiredBssidList->uTotalNumOfEntries = 5; connect.dot11BssType = dot11_BSS_type_independent; connect.dwFlags = WLAN_CONNECTION_IGNORE_PRIVACY_BIT; error = WlanConnect(handle, id, &connect, NULL); if (error != ERROR_SUCCESS) cout << "CANNOT CONNECT\n"; else cout << "CONNECTION SUCCESS\n"; return (0); }
Si quelqu'un peux m'aider, ça serait cool.
A+
Partager