WlanGetProfileList нативный API работает, как и ожидалось, до перезагрузки устройства. После перезагрузки устройства результат того же API пуст. Но все же я вижу созданные профили в параметрах реестра Windows Compact OS.
Для включения функции Wi-Fi в WINCE7 я использовал WLANTOOL. Ниже приведен код от wlantool для получения списка созданных профилей.
BOOL WlanInterfaces::ListProfileList(LPCWSTR strAdapter)
{
BOOL bResult = FALSE;
DWORD dwError = ERROR_SUCCESS;
PWLAN_PROFILE_INFO_LIST pProfileList = NULL;
do
{
if(FALSE == Init())
break;
WLAN_INTERFACE_INFO* pInterface = NULL;
if(!GetInterface(strAdapter,&pInterface))
break;
dwError = WlanGetProfileList(*phClientHandle,
&pInterface->InterfaceGuid,
NULL,
&pProfileList);
if(ERROR_SUCCESS != dwError)
{
PrintMsg(L"WlanGetProfileList() Failed Error : %d",dwError);
break;
}
if(NULL == pProfileList)
{
PrintMsg(L"WlanGetProfileList() returned NULL ProfileList");
break;
}
for(DWORD i =0;i<pProfileList->dwNumberOfItems;i++)
{
PrintMsg(L"");
PrintMsg(L"Index : %lu",i);
PrintMsg(L"Flags : %lu",pProfileList->ProfileInfo[i].dwFlags);
PrintMsg(L"ProfileName : %s",pProfileList->ProfileInfo[i].strProfileName);
ListProfile(strAdapter,pProfileList->ProfileInfo[i].strProfileName);
}
bResult = TRUE;
}while(FALSE);
if(pProfileList)
WlanFreeMemory(pProfileList);
return bResult;
}
Любая помощь будет оценена. Заранее спасибо.
В Win CE некоторые папки устройств и IIRC, ключи реестра сбрасываются при перезагрузке.
Вам необходимо проверить документацию для своего устройства и версии Windows, чтобы увидеть, какие места хранения являются постоянными, и либо использовать их, либо сохранять и восстанавливать в / из них.
Других решений пока нет …