在Windows桌面应用程序中实现帮助功能的最佳方法-限制应用程序知识库以授权访问

问题描述

在Windows桌面应用程序中实现帮助功能的最佳方法,以下是我遇到的选项的列表:

参考:https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help#cite_note-2

  1. Microsoft编译的HTML帮助是Microsoft专有的在线帮助格式
  • 可以反编译(工具7-Zip,Sumatra等)
  • Microsoft WinHelp的前身/ Microsoft Help 2的后继
  • 支持Win 10

参考:https://en.wikipedia.org/wiki/WinHelp

  1. .hlp Microsoft WinHelp 是联机帮助文件的专有格式,可以由Microsoft帮助浏览器winhelp.exe或winhlp32.exe显示。 -将WinHelp文件反编译为其源文档:HPJ,CNT,RTF,BMP和SHG -WinHelp文件在单独的窗口中打开(帮助作者可以控制帮助文件是在会话之间存储用户的设置,还是始终以认大小和位置打开。)
  • 具有标题菜单行(文件,编辑,书签,选项和帮助) 典型的按钮包括“目录”,“索引”,“后退”和“打印”,以及用于浏览文件的>按钮。帮助作者还可以创建自定义按钮以跳到特定主题或执行其他操作。 -终止支持-Wine的winhlp32开源版本也可在Windows 10上使用。它是WineVDM的一部分。

参考:https://en.wikipedia.org/wiki/Microsoft_Help_2

  1. Microsoft_Help_2 是一种在线帮助文​​件的专有格式,由Microsoft开发并于2001年作为Visual Studio .NET(2002)和MSDN Library的帮助系统首次发布。 Microsoft Help 2.x是Microsoft Visual Studio 2002/2003/2005/2008和Office 2007和Office 2010中使用的帮助引擎。
  • Microsoft帮助2.x文件的扩展名为“ .hxs”
  • 可以使用开源的“转换”工具反编译hxs文件

参考:https://en.wikipedia.org/wiki/Microsoft_Help_Viewer

  1. Microsoft帮助查看器(HV)是由Microsoft开发的,与Visual Studio 2010及其关联的MSDN Library一起提供的脱机帮助系统(本地帮助)。

以上所有方法均具有以下限制:可以对编译后的帮助文件进行反编译并进一步重新分发,这是我要限制的。 我想只允许授权用户访问知识库,并且授权用户也不能进一步复制或反编译知识库,并与未经授权的用户进一步共享。

解决方法

简短的故事-如果编译为WinHelp( .hlp),HTMLHelp( .chm),Help2( .hxs)或Help Viewer文件( .mshc)。

Winhelp已有30年历史,HTMLHelp已有23年历史!请注意,HTMLHelp(CHM文件)反编译器仍是Windows 10操作系统的集成部分。

您知道Microsoft自WinHelp(.hlp)和HTML帮助(.chm)以来创建了其他帮助系统,但是它们与各种系统相关联:

  • 用于Visual Studio 2002/2003/2005/2008的MS Help 2.0和Office帮助。
  • 用于Windows Vista OS / OEM帮助的AP帮助(基于MS帮助2)
  • 用于Visual Studio 2010帮助的MS Help Viewer 1.0。
  • 用于Visual Studio 2012和Windows 8 OS / OEM的MS Help Viewer 2.0。

这些格式没有完全公开和记录。它们应被视为Microsoft内部。

一些注意事项:

  • WinHelp(.hlp)格式早在1990年代就已经存在,并且已被HTML Help 1.x(.chm)取代。 Microsoft强烈建议您大约十年前退出WinHelp。
  • 仍然建议您使用HTML HELP(.chm)获得Windows应用程序帮助,除非将其集成到Visual Studio帮助中。
  • 但是,如今,向基于Web的帮助(例如,使用Markdown text => HTML)的过渡越来越多

根据您的要求,您可以尝试以下想法

  • 基于Web的帮助:对基于Web的帮助(知识基础)使用密码保护区域
  • 使用受密码保护的CHM to EXE Converter 2.0加密并将CHM转换为exe,以防止进行编辑,复制和打印。您只能将不带密码的chm转换为exe,也可以设置PC绑定到用户的密码。只有您可以为用户创建开放密码。轻松分发CHM文件并对其进行保护。

编辑:

您的第一个要求“我想只允许授权用户访问知识库” 可以通过基于Web的帮助来解决。您经常会遇到无法免费访问所有部分的网站:为了能够查看网站某些部分的内容,您需要注册并获取登录名和密码才能进入这些限制区域。 一个经典的例子是公司网站,其中保留了对会员区域的访问权限,供销售人员和合作伙伴查看帮助文档和价目表,或者是要求登录访问可下载内容的门户。

如果您真的想为Windows上的软件创建结构化的应用程序帮助,包括上下文相关的帮助, CHM通常更好。但是,即使那样也有学习曲线。

您的第二个要求”和授权用户也不能进一步复制或反编译知识库。” 只能通过大量的努力才能解决。不知道-可能加密/解密到内存流并将其传递到文件流。

基于Web的帮助示例: