我正在創建一個能夠自動連接到無線網絡的程序。爲此,我使用名爲ManagedWifi的庫,該庫使用庫「wlanapi.dll」。當我嘗試在Windows Vista上使用代碼時,一切正常,但在Windows XP上使用它時會失敗。我已檢查它已安裝Service Pack 3,並且「wlanapi.dll」位於Windows/system32中。問題是當ManagedWifi將此方法稱爲:wlanapi.dll在Windows XP中的WlanSetProfile失敗
[DllImport("wlanapi.dll")]
public static extern int WlanSetProfile(
[In] IntPtr clientHandle,
[In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceGuid,
[In] WlanProfileFlags flags,
[In, MarshalAs(UnmanagedType.LPWStr)] string profileXml,
[In, Optional, MarshalAs(UnmanagedType.LPWStr)] string allUserProfileSecurity,
[In] bool overwrite,
[In] IntPtr pReserved,
[Out] out WlanReasonCode reasonCode);
您可以查看此方法here的說明。我收到的錯誤如下:1206(ERROR_BAD_PROFILE)。正如你所看到的in this page這是一個已知的錯誤,我唯一要做的就是下載並安裝修補程序。那麼,我已經這樣做了,錯誤仍然存在。該配置文件是正確的,因爲我得到它從一個電話WlanGetProfile
我只是想連接到使用WlanConnect網絡,但你可以在函數的頁面中看到:的Windows XP SP3和無線局域網的API帶SP2的Windows XP:您只能使用WlanConnect連接到首選網絡列表中的網絡。要將網絡添加到首選網絡列表,請調用WlanSetProfile。
我真的很絕望,我一直在爭取這個錯誤一些日子,我需要去通過它...
而且,如果我嘗試調用WlanConnect方法不調用SetProfile,結果總是一樣的:它沒有連接。
我會很感激你可以提供任何想法。