【问题标题】:WlanSetProfile from wlanapi.dll in Windows XP failsWindows XP 中 wlanapi.dll 中的 WlanSetProfile 失败
【发布时间】:2011-12-01 16:38:03
【问题描述】:

我正在创建一个能够自动连接到无线网络的程序。为此,我使用了一个名为 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);

您可以查看此方法here 的说明。我收到的错误如下:1206 (ERROR_BAD_PROFILE)。如您所见in this page 这是一个已知错误,我唯一要做的就是下载并安装修补程序。好吧,我已经这样做了,错误仍然存​​在。配置文件是正确的,因为我是通过调用 WlanGetProfile 得到的

我只想使用WlanConnect 连接到网络,但正如您在函数页面中看到的那样:带有 SP3 的 Windows XP 和带有 SP2 的 Windows XP 的无线 LAN API:您只能使用 WlanConnect 连接到首选网络列表中的网络。要将网络添加到首选网络列表,请调用 WlanSetProfile。

我真的很绝望,几天以来我一直在努力解决这个错误,我需要经历它......

而且,如果我尝试在不调用 SetProfile 的情况下调用 WlanConnect 方法,结果总是相同的:无法连接。

如果您能提供任何想法,我将不胜感激。

【问题讨论】:

    标签: windows-xp-sp3 wlanapi


    【解决方案1】:

    有一个 WlanReasonCode 输出参数可以告诉您配置文件无效的原因。这有什么帮助吗?

    您是从哪台机器上获取配置文件的? IIRC XP 仅支持更高版本平台支持的配置文件子集。

    哦,我不知道您是否可以在 XP 上通过 WlanConnect 连接到 IBSS(ad-hoc)网络。

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 1970-01-01
      • 2011-09-19
      • 2013-02-01
      • 2015-07-18
      • 1970-01-01
      • 2010-09-23
      • 2014-02-06
      • 2013-05-28
      相关资源
      最近更新 更多