打开基于 Windows 的程序中的“帮助”时出错:“不包括该功能”或“帮助不受支持”

适用于: Windows Server 2012 R2 DatacenterWindows Server 2012 R2 EssentialsWindows Server 2012 R2 Foundation

Windows 帮助程序在 Windows 10、Windows Server 2012 或更高版本的 Windows Server 中不受支持。 Windows 帮助程序仅适用于 Windows Vista、Windows 7、Windows 8 和 Windows 8.1。

Microsoft 强烈建议软件开发人员停止使用 Windows 帮助应用程序。 对于提供依赖 .hlp 文件的程序的软件开发人员,我们鼓励他们将其帮助体验转换为其他帮助文件格式,例如 CHM、HTML 或 XML。 有关详细信息,请参阅 MSDN 文章“我需要哪个版本的帮助?” 虽然 Microsoft 在开发未来的帮助技术,但是我们鼓励帮助作者继续使用 HTML Help 1.4。 从 Windows 7 开始,HTML Help 1.4 包含在 Windows 版本中。

症状


尝试在基于 Windows 的程序中打开“帮助”时,你会收到下列错误消息之一。

此程序的“帮助”是采用以前版本的 Windows 中使用的 Windows 帮助格式创建的,在 Windows Vista 中不支持这种格式。

此程序的“帮助”是采用 Windows 帮助格式创建的,具体取决于此版本的 Windows 中未包含的功能。 但是,你可以下载一个允许你查看采用 Windows 帮助格式创建的帮助的程序。

此程序的“帮助”是采用 Windows 帮助格式创建的,具体取决于此版本的 Windows 中未包含的功能。 有关更多信息,请访问“Microsoft 帮助和支持”网站。

解决方案


要在 Windows 中查看具有 .hlp 文件扩展名的 32 位帮助文件,需要从 Microsoft 下载中心下载并安装 WinHlp32.exe。下载此程序的重要注意事项
  • 使用 Internet Explorer 打开链接。
  • 如果在打开下载页面时看到“需要验证”消息,请单击“继续”,然后按照屏幕上的说明操作。
  • 当系统提示下载文件时,请为 64 位 Windows 版本选择包含“x64”的文件名,为 32 位 Windows 版本选择包含“x86”的文件名。 请使用以下自动检测信息进行选择。
     
  • Windows 帮助程序在 Windows Server 2012 或更高版本的 Windows Server 中不受支持。
如果在安装 WinHlp32.exe 或使用“帮助”时遇到问题,请转到“更多信息”部分。

适用于高级用户的更多信息


当 Windows 帮助使用较早版本的 Windows 帮助程序 (WinHlp32.exe) 显示内容时出现此问题。

安装 WinHlp32.exe 时可能会出现的已知问题

Windows 更新错误 80070422

手动修复此问题

如果在下载 WinHlp32.exe 更新时收到 Windows 更新错误 80070422,则可能必须更改 Windows 更新服务设置,然后重新启动服务。 为此,请按照下列步骤操作:

  1. 单击“开始”,并在“开始搜索”或“搜索程序和文件”文本框中键入“服务”
  2. 双击程序列表中的“服务”。 如果系统提示您输入管理员密码或进行确认,请键入密码或进行确认。
  3. 右键单击“Windows 更新”服务,然后单击“属性”。
  4. “常规”选项卡上,确保选择了“启动类型”旁边的“自动”。
  5. “服务状态”的旁边检查该服务是否已启动。 如果没有启动,请单击“启动”。 如果系统提示您输入管理员密码或进行确认,请键入密码或进行确认。
  6. 单击“确定”。

安装 WinHlp32.exe 后可能会出现的已知问题

下面的列表显示了与 WinHlp32.exe 早期版本相比已知的功能衰退情况。 下列已知问题仅出现在本文讨论的 WinHlp32.exe 版本中。

  • 一些宏已被禁用

    默认情况下,Windows 帮助中会禁用下列宏:
    • ExecFile
    • RegisterRoutine
    • ShellExecute
    • ShortCut
    • Generate
    • Test
    • ExecProgram
    但是,.hlp 文件中的所有其他宏仍可以像在过去的版本中一样运行。 因此,安装用于 Windows Vista、Windows 7、Windows Server 2008 或 Windows Server 2008 R2 的 Windows 帮助后,如果打开依赖这些宏的 .hlp 文件,该文件的某些功能可能无法正常运行。 发生这种情况时,你可能会收到以下错误消息:
    运行宏时出错。 (1037)
    如果需要使用这些宏,则可以启用它们,方法是使用组策略替代方法或注册表替代方法,如“用于网络管理员的注册表项和组策略”部分中所述。
  • 无法访问存储在 Intranet 站点上的 .hlp 文件

    默认情况下,无法使用 WinHlp32.exe 访问存储在 Intranet 站点上的 .hlp 文件。 如果尝试打开远程文件,将收到以下错误消息:
    无法显示该帮助文件。 请再次打开该文件,如果仍收到此消息,请将它复制到别的驱动器,再试一次。
    如果需要访问存储在 Intranet 站点上的 .hlp 文件,则可以取消阻止这些文件,方法是使用组策略替代方法或注册表替代方法,如“用于网络管理员的注册表项和组策略”部分中所述。
  • 非交互式用户的访问已被阻止

    非交互式用户(例如系统进程)对 .hlp 文件的访问已被阻止。 遇到此错误时,用户不会收到错误消息。
  • 拖放功能已禁用

    在应用程序中,已禁用对拖放功能的支持。 遇到此错误时,用户不会收到错误消息。
  • “如何使用帮助”文件依赖性

    名为“如何使用帮助”的帮助文件已从 Windows Vista 和 Windows Server 2008 中删除。 以下是已删除的文件:
    • Windows.hlp
    • Winhlp32.hlp
    • Winhlp32.cnt
    • Winhelp.cnt
    • Nocntnt.cnt
    注意
    • 这些文件未包含在 Windows 7 或 Windows Server 2008 R2 中。
    • 当您尝试打开依赖这些文件的 .hlp 文件时,可能会返回错误。

如何解决 WinHlp32.exe 相关的兼容性问题

可以使用 WinHlp32.exe 查看 32 位帮助文件。 此版本提供了一些组策略设置和注册表子项,可用于解决应用程序兼容性问题。 例如,利用这些组策略设置和注册表子项,可以解决与 .hlp 文件中的宏和访问存储在 Intranet 站点上的 .hlp 文件相关的问题。 但是,当用户查看来自未知来源的帮助文件时,启用这些策略或设置将给计算机带来更多风险。 因此,在决定是否实施此部分中介绍的应用程序兼容性解决方法时,应三思而后行。

使用下列问题决定是否安装 WinHlp32.exe,以及对策略和注册表进行哪些更改。

  • 是否必须使用因删除 WinHlp32.exe 而受到影响的应用程序和功能?
    • 有多少应用程序需要使用 WinHlp32.exe? 有多少应用程序受这些功能更改的影响? 这些应用程序的重要程度如何?
    • 这些更改导致的故障的严重程度如何?
  • 您具有哪些安全要求和安全功能?
    • 哪个更重要: 是能够使用 WinHlp32.exe 功能,还是确保安全性得到尽量增强?
    • 外部安全措施(例如本地或企业防火墙)是否可以令你放心地安装 WinHlp32.exe 并进行本文介绍的策略更改或注册表更改?
  • 如果您是公司职员,贵公司是否提供 .hlp 格式的内容?
    • 是否可以对程序或内容进行修改,以使它们不必使用 WinHlp32.exe 功能? 例如,是否可以将当前采用 .hlp 格式的帮助内容转换为 .chm、.html 或 .xml 等其他文件格式?
    • 你的组织是否将 .hlp 文件存储在 Intranet 站点上? 是否可以改为本地安装这些文件?

安装 WinHlp32.exe 后,如何在某台计算机上启用宏

在安装本文中讨论的 WinHelp32.exe 程序后,某些宏将被禁用。 有关此问题的更多信息,请参阅已知问题部分。

本部分包含通过修改注册表项重新启用这些宏的步骤。 如果你的计算机处于托管环境中,在未事先咨询 IT 部门的情况下,请不要按照这些步骤执行操作。 IT 部门可能决定不重新启用宏,或者他们决定通过使用组策略来重新启用宏。 在继续操作前,IT 部门应通读本文。

警告本文提供有关如何解决此版本的 Windows 帮助中的更改引起的问题的信息。 但是,Microsoft 并不就哪些注册表项和值适合您的环境提供具体建议。 如果您处于托管环境中,则您的 IT 部门可以对这些替代方法的优点以及使用它们的风险作出最佳判断。 比较安全的方法是根本不使用注册表替代方法。

注意要执行此任务中的步骤,必须使用管理员帐户登录到计算机。 使用管理员帐户后,即可更改无法使用其他帐户(如标准帐户)更改的计算机。

要使用管理员帐户登录,您必须知道计算机上管理员帐户的密码。 如果要在个人计算机上执行这些步骤,则可能已经使用管理员帐户登录。 如果要在工作计算机上执行这些步骤,则可能需要系统管理员提供帮助。

在某台计算机上手动启用宏

重要说明
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。


要在安装 WinHelp32.exe 后在某台计算机上启用宏,请按照下列步骤操作:
  1. 使用管理员帐户登录。
  2. Windows 徽标键 + R,键入 regedit,然后单击“确定”。
    Notice icon
      如果系统提示你输入管理员密码或进行确认,请键入密码或单击“继续”。
  3. 在 32 位版本的 Windows 上,找到并选择以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

    在 64 位版本的 Windows 上,找到并选择以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft
  4. 在“编辑”菜单上,指向“新建”,然后单击“项”
  5. 键入 WinHelp,然后按 Enter。
  6. 单击“WinHelp”项。
  7. “编辑”菜单上,指向“新建”,然后单击“DWORD (32 位)值”。
  8. 键入 AllowProgrammaticMacros,然后按 Enter。
  9. 在“编辑”菜单上,单击“修改”
  10. “数值数据”框中,键入 1,在“基数”区域中单击“十六进制”,然后单击“确定”。
  11. 退出注册表编辑器。 

在安装 WinHlp32.exe 后,如何在某台计算机上取消阻止存储在 Internet 上的 .hlp 文件

在安装本文中讨论的 WinHelp32.exe 文件后,在 Intranet 站点上存储的 .hlp 文件将被阻止。 有关此问题的更多信息,请参阅已知问题部分。

本文包含通过修改注册表项来取消阻止这些 .hlp 文件的步骤。 如果您的计算机处于托管环境中,在咨询您的 IT 部门前,请不要按照这些步骤操作。 IT 部门可能决定不重新启用宏,或者他们决定通过使用组策略来重新启用宏。

重要说明本文包含的信息向您介绍了如何在计算机上降低安全设置或关闭安全功能。 您可以通过这些更改来解决特定的问题。 我们建议在进行这些更改之前,充分考虑在你的特定环境中实施这种解决方法可能带来的风险。 如果实施该解决方法,请采取任何适当的附加措施来帮助保护您的计算机。

警告本文提供有关如何解决由此 Windows 帮助版本中的更改导致的问题。 但是,Microsoft 并不就哪些注册表项和值适合您的环境提供具体建议。 如果您处于托管环境中,则您的 IT 部门可以对这些替代方法的优点以及使用它们的风险作出最佳判断。 比较安全的方法是根本不使用注册表替代方法。

注意要执行此任务中的步骤,必须使用管理员帐户登录到计算机。 使用管理员帐户后,即可更改无法使用其他帐户(如标准帐户)更改的计算机。

要使用管理员帐户登录,必须知道计算机上管理员帐户的密码。 如果你正在个人计算机上执行这些步骤,则可能已经使用管理员帐户登录。 如果您要在工作计算机上执行这些步骤,则可能需要系统管理员提供帮助。

手动取消阻止某台计算机上存储在 Intranet 上的 .hlp 文件

重要说明
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。


要在安装 WinHelp32.exe 后取消阻止 .hlp 文件,请按照下列步骤操作:
  1. 使用管理员帐户登录。
  2. Windows 徽标键 + R,键入 regedit,然后单击“确定”。
    Notice icon
     如果系统提示你输入管理员密码或进行确认,请键入密码或单击“继续”。
  3. 在 32 位版本的 Windows 上,找到并选择以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

    在 64 位版本的 Windows 上,找到并选择以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft
  4. 在“编辑”菜单上,指向“新建”,然后单击“项”
  5. 键入 WinHelp,然后按 Enter。
  6. 单击“WinHelp”项。
  7. “编辑”菜单上,指向“新建”,然后单击“DWORD (32 位)值”。
  8. 键入 AllowIntranetAccess,然后按 Enter。
  9. 在“编辑”菜单上,单击“修改”
  10. “数值数据”框中,键入 1,在“基数”区域中单击“十六进制”,然后单击“确定”。
  11. 退出注册表编辑器。

针对网络管理员的注册表项和组策略

警告此解决方法可能会导致您的计算机或网络更易受到恶意用户或恶意软件(例如病毒)的攻击。 我们不建议您采用这种替代方法,此信息仅供参考,您应自行决定是否实施此替代方法。 使用此方法需要你自担风险。

警告本文提供有关如何解决由此 Windows 帮助版本中的更改导致的问题。 但是,Microsoft 并不就哪些注册表项和值适合您的组织提供具体建议。 您的 IT 部门可以对这些替代方法的优点以及使用它们的风险作出最佳判断。 比较安全的方法是根本不使用注册表替代方法。

WinHlp32.exe 下载提供的组策略设置和注册表项可以解决此 Windows 帮助版本中的两个已知问题。 通过利用下列组策略设置或注册表项,网络管理员和各个用户可以重新启用宏,并取消对存储在 Intranet 站点上的 .hlp 文件的阻止。 提供本地计算机组策略设置和当前用户组策略设置作为每项功能的解决方法。 也可以使用用户注册表设置来管理每项功能。

对于每项功能,这些替代方法的优先级如下:

  • 本地计算机组策略
  • 当前用户组策略
  • 用户注册表设置
如果没有为一个功能设置一个策略,也没有为此功能设置用户注册表,那么此功能将表现出如“已知问题”部分中所介绍的行为。

重要说明此部分、方法或任务包含有关如何修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了获得进一步的保护,请在修改注册表之前对其进行备份。 这样就可以在出现问题时还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
  • 如何启用宏

    网络管理员可以使用“允许 WinHlp32.exe 中的编程宏”组策略设置来启用或关闭 .hlp 文件中的宏。 管理员可以使用组策略管理控制台 (GPMC) 管理此组策略设置。 有关组策略的更多信息,请参见“参考”部分。

    如果未对此功能设置本地计算机组策略和当前用户组策略,用户可以修改此功能的用户注册表设置,以启用或禁用 .hlp 文件中的宏。 要更改此设置,用户必须先向注册表中添加下面的新子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WinHelp
    接下来,用户必须向此子项中添加一个名为 AllowProgrammaticMacros 的 DWORD 值。 如果将 AllowProgrammaticMacros 的值设置为 1,则将启用宏。 如果将该值设置为 0,则将禁用宏。 如果此注册表值不存在,也将禁用宏。
  • 如何取消对存储在 Intranet 上的 .hlp 文件的阻止

    网络管理员可以使用“允许 WinHlp32.exe 访问存储在内联网站点上的 .hlp 文件”组策略设置取消阻止对存储在内联网上的 .hlp 文件。 管理员可以使用 GPMC 管理此组策略设置。 有关组策略的更多信息,请参阅“参考”部分。

    如果未对此功能设置组策略设置,用户可以修改此功能的用户注册表设置,以阻止或取消阻止存储在 Intranet 站点上的 .hlp 文件。 要更改此设置,用户必须先向注册表中添加下面的新子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WinHelp
    接下来,用户必须向此子项中添加一个名为 AllowIntranetAccess 的 DWORD 值。 如果将 AllowIntranetAccess 的值设置为 1,将可以访问存储在 Intranet 站点上的 .hlp 文件。 如果将该值设置为 0,将阻止存储在 Intranet 站点上的 .hlp 文件。 如果此注册表值不存在,也将阻止存储在 Intranet 站点上的 .hlp 文件。

发布 .hlp 文件的帮助内容提供商

从 Windows Vista 开始,新的帮助组件替换了旧的帮助组件 (WinHlp32.exe),新帮助组件针对较新的 Windows 版本添加了更多的功能。

在未来的 Windows 版本中,将不再支持当前形式的 WinHlp32.exe 技术。 因此,我们强烈建议软件开发人员不再使用此 Windows 帮助程序。 对于发布依赖 .hlp 文件的程序的软件开发人员,我们鼓励他们将其帮助系统转换为其他帮助文件格式,例如 .chm、.html 或 .xml。 他们还必须将其调用从 WinHelp API 更改为新内容源。 有些第三方工具可帮助软件开发人员将帮助内容格式转换为其他格式。

请注意,Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2 仍包含用于 16 位 .hlp 文件的 WinHelp.exe。 WinHelp.exe 程序是针对 16 位 .hlp 文件而设计的一个 Windows 帮助版本。
 

参考