2011-12-01 77 views
0

我正在創建一個能夠自動連接到無線網絡的程序。爲此,我使用名爲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,結果總是一樣的:它沒有連接。

我會很感激你可以提供任何想法。

回答

0

有一個WlanReasonCode輸出參數應該告訴你配置文件無效的原因。有什麼幫助嗎?

你從哪個機器獲得配置文件? IIRC XP僅支持在更高版本平臺上支持的一部分配置文件。

哦,我不知道你是否可以通過WlanConnect連接到XP上的IBSS(ad-hoc)網絡。

相關問題