Windows帮助文件 - 有哪些选项?

回到过去,帮助不是微不足道的,而是可能的:使用特殊标记生成一些时髦的.rtf文件,通过编译器运行它,并且获得实际上运行良好的WinHelp文件(.hlp)。

然后,微软决定WinHelp不再流行,并转而使用CHM,直到他们真正从Vista中砍掉WinHelp。

现在,CHM可能不错,但是每个试图在网络上打开.chm文件的人都会知道安全限制导致的“导航到网页被取消”屏幕。

虽然有办法使CHM能够在网络上工作,但这并不是一个好的选择,因为当用户按下帮助按钮时,他希望得到帮助,而不必进行一些时髦的设置。

底线:我发现CHM绝对无法使用。但是,随着WinHelp不再是一种选择,我想知道替代方案是什么,特别是当涉及到与我的应用程序集成时(即WinHelp和CHM有可以直接跳转到某个主题的功能)?

PDF的缺点是需要Adobe Reader(或其中一个不太常用的轻量级)。我可以接受这种看法,因为现在这是一种标准,但是你能否可靠地告诉它跳到给定的页面/锚点?

HTML文件似乎是最好的选择,你只需要处理不同的浏览器(CSS和东西)。

Edit: I am looking to create my own Help Files. As I am a fan of the "No Setup, Just Extract and Run" Philosophy, i had that problem many times in the past because many of my users will run it off the network, which causes exactly this problem.

所以我正在寻找一种更强大且面向未来的方式来为我的用户提供帮助,而无需为每个应用程序编写不同的帮助系统。

CHM是一个非常好的格式,但是Security Stuff使其无法使用,因为帮助系统应该为用户提供帮助,而不会产生更多问题。

0
额外 编辑
意见: 1

5 答案

问题是如何生成自己的帮助文件,或者什么是最好的帮助文件格式?

就我个人而言,我发现CHM非常出色。我在安装机器时所做的第一件事就是以CHM格式下载PHP手册( http://www.php.net/download-docs.php )并在 Crimson Editor中为其添加热键。所以当我按下F1时,它会加载CHM并执行我的光标所在的单词的搜索(对于快速函数引用来说非常适用)。

0
额外

如果你正在做“只是提取并运行”,你将会遇到安全问题。如果您是用户运行Vista(或更高版本),则尤其如此。是否有一个原因,您为什么要避免将应用程序打包到安装程序中?使用安装程序可以缓解“外部源”问题。您将能够毫无问题地使用.chm文件。

我们使用 InstallAware 创建我们的安装包。这不便宜,但非常好。如果您担心成本, WIX 是开放源代码且非常强大。 WIX确实有一条学习曲线,但很容易处理。

0
额外
是的,我想避免安装程序的原因是因为它们不是必需的。我讨厌安装东西,因为总是有太多的乱七八糟的东西(注册表键,卸载项),所以只要我没有任何外部依赖,开始菜单条目等,我不想使用安装程序,尤其是,如果只需要用帮助系统清理不必要的安全问题
额外 作者 Michael Stum,

如果您不想使用安装程序,并且您不希望用户执行任何额外的步骤以通过网络允许CHM文件,为什么不回到WinHelp? Vista不包括开箱即用的WinHlp32.exe,但免费提供下载适用于Vista和Server 2008。

0
额外
因为那么用户必须执行额外的步骤来允许HLP文件,甚至是本地?
额外 作者 Roger Lipscombe,

HTML将成为下一个最佳选择,只有您可以从公共Web服务器为它们提供服务。如果你试图将它与你的应用程序捆绑在一起,所有的文件(和图像(和样式表(和...)))将使CHM看起来像来自上帝的礼物。

也就是说,当实际捆绑在安装包中时(而不是通过网络提供服务),我发现CHM文件很好地工作。

OTOH是关于CHM文件的另一个缺陷:即使您尝试在本地磁盘上打开CHM文件,如果您最初从某处下载安全块,则可能会碰到安全块,因为该文件可能被标记作为“来自外部来源”。

0
额外
在考虑几乎所有其他事情之后,似乎HTML文件确实是我唯一的选择,因为每一个其他选择都会被严重破坏。
额外 作者 Michael Stum,
是的,这一直发生。甚至经验丰富的开发人员也会去旅行
额外 作者 Cheeso,
即使您拥有自己的更新程序,CHM解锁问题也可以通过编程方式解决。 (常规安装系统已经修复它)请参阅 stackoverflow.com/questions/6823166/…
额外 作者 Marco van de Voort,

我们的软件既在本地分发给客户端,也通过网络共享服务。我们选择生成一个CHM文件和一组用于从网络提供服务的HTML文件。在本地启动程序的用户使用CHM文件,并且从网络共享服务器获取其程序的用户必须使用HTML文件。

我们使用帮助和手册,因此可以轻松地从同一个源项目中生成两种类型的输出。 HTML文件还包含搜索功能,并不需要Web服务器,所以尽管它不是最佳解决方案,但可以正常工作。

到目前为止,Windows的所有单一文件类型似乎都以某种方式被破坏:

  • WinHelp - 已过时
  • HtmlHelp(CHM) - 在Vista上过时,不适用于网络共享,除此之外非常好
  • Microsoft Help 2(HXS) - 这似乎一直运行到它没有的时候,损坏了索引或类似的东西,这被Visual Studio 2005及以上版本用作一个例子
0
额外
(VIsta有一个后继者(平台援助),但那不是免费的,现在在windows 8时代还不是很流行)
额外 作者 Marco van de Voort,
我不知道CHM在Vista上已经过时了。它是官方的吗?任何链接?
额外 作者 PhiLho,