wlanapi.dll在Windows XP中的WlanSetProfile失败
我正在创建一个能够自动连接到无线网络的程序。为此,我使用名为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,结果总是一样的:它没有连接。
我会很感激你可以提供任何想法。
有一个WlanReasonCode输出参数应该告诉你配置文件无效的原因。有什么帮助吗?
你从哪个机器获得配置文件? IIRC XP仅支持在更高版本平台上支持的一部分配置文件。
哦,我不知道你是否可以通过WlanConnect连接到XP上的IBSS(ad-hoc)网络。