2011-12-01 105 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)网络。