我正在创建一个能够自动连接到无线网络的程序。为此,我使用了一个名为 ManagedWifi 的库,它使用库“wlanapi.dll”。当我尝试在 Windows Vista 上使用该代码时,一切都很好,但是当我在 Windows XP 上使用它时却失败了。我检查了它是否安装了 Service Pack 3,并且“wlanapi.dll”位于 Windows/system32 中。问题是当 ManagedWifi 调用此方法时:
[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);
您可以在此处查看此方法的说明。我收到的错误如下:1206 (ERROR_BAD_PROFILE)。正如您在此页面中看到的,这是一个已知错误,我唯一要做的就是下载并安装修补程序。好吧,我已经这样做了,错误仍然存在。配置文件是正确的,因为我通过调用WlanGetProfile得到它
我只想使用WlanConnect连接到网络,但正如您在功能页面中看到的那样:Windows XP SP3 和 Windows XP SP2 的无线 LAN API:您只能使用 WlanConnect 连接到首选网络列表中的网络。要将网络添加到首选网络列表,请调用 WlanSetProfile。
我真的很绝望,几天以来我一直在努力解决这个错误,我需要经历它......
而且,如果我尝试在不调用 SetProfile 的情况下调用 WlanConnect 方法,结果总是相同的:它无法连接。
我会很感激你能提供的任何想法。