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

时间:2008-08-04 10:43:06

标签: windows language-agnostic chm winhelp

回到过去,帮助并非易事,但可能:生成一些带有特殊标签的时髦.rtf文件,通过编译器运行它,你有一个实际上运行良好的WinHelp文件(.hlp)。 p>

然后,微软决定WinHelp不再嘻嘻哈哈,转而使用CHM,直到他们真正从Vista中删除了WinHelp。

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

虽然有很多方法可以让CHM在网络上运行,但这不是一个好的选择,因为当用户按下帮助按钮时他需要帮助而不必进行一些时髦的设置。

底线:我发现CHM绝对无法使用。但是由于WinHelp不再是一个选项,我想知道替代方案是什么,特别是在与我的应用程序集成时(例如,对于WinHelp和CHM,有些功能可以让你直接跳转到某个主题)?

PDF的缺点是需要使用Adobe Reader(或者是人们使用的轻量级之一)。我可以忍受那种看法,因为这是现在的标准,但你能否可靠地告诉它跳转到给定的页面/锚点?

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

编辑:我希望创建自己的帮助文件。由于我是“No Setup,Just Extract and Run”理念的粉丝,我过去曾经多次遇到过这个问题,因为我的很多用户都会将它从网络上运行,这正是导致这个问题。

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

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

10 个答案:

答案 0 :(得分:14)

HTML将是下一个最佳选择,只要您从公共Web服务器提供服务即可。如果您尝试将其与应用程序捆绑在一起,那么所有文件(以及图像(和样式表(和......)))都会使CHM看起来像是来自众神的礼物。

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

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

答案 1 :(得分:5)

我不喜欢html选项,实际上是通过压缩和索引它们从纯HTML转移到CHM。甚至可以在少数非Windows客户上使用它们。 它简单地解决了人们将它放在网络上的不断的小破坏(嵌套深度有限,奇怪的锁定效果),在具有30000个html文件的目录中死亡的防病毒,以及在旧系统上安装的20分钟解压缩时间,浏览器安全区域和功能,安装程序中所需空间的错误计算等。

然后我甚至不包括开始“纠正”他们的人,有错误“整合”尝试的第三方产品等,关于缓慢(浏览器启动)的投诉

随着操作系统和硬件的改进,我们都已经等了好几年才能解决问题,但这些问题不断出现在令人窒息的品种中,足够了。我们发现chmlib,并决定我们可以永远使用基于此的东西作为一个简单的外部阅读器逃脱,如果操作系统提供的停止工作和切换。

同时我们也有自己的编译器,所以我们是MS免费面向未来的。这并不意味着我们永远不会改变(现在的本地网络服务器解决方案似乎很受欢迎),但至少我们有一个选择。

答案 2 :(得分:3)

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

就个人而言,我发现CHM非常出色。我在设置机器时要做的第一件事就是以CHM格式(http://www.php.net/download-docs.php)下载PHP手册,并在Crimson Editor中为其添加一个热键。因此,当我按F1时,它会加载CHM并执行搜索我的光标所在的单词(非常适合快速参考功能)。

答案 3 :(得分:3)

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

我们使用Help and Manual,因此可以轻松地从同一源项目生成两种类型的输出。 HTML文件还包含搜索功能,不需要Web服务器,因此虽然它不是最佳解决方案,但工作正常。

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

  • WinHelp - 已废弃
  • HtmlHelp(CHM) - 在Vista上已经过时,无法从网络共享中运行,除此之外非常好用
  • Microsoft帮助2(HXS) - 这似乎可以正常工作,直到它没有,损坏的索引或类似的,这被Visual Studio 2005及以上使用,作为示例

答案 4 :(得分:3)

如果您不想使用安装程序并且您不希望用户执行任何额外步骤以允许通过网络传输CHM文件,为什么不回退到WinHelp? Vista不包括开箱即用的WinHlp32.exe,但Vista和Server 2008都是freely available as a download

答案 5 :(得分:3)

这取决于在线文档对您的产品的导入方式,良好的文档基础架构可能很复杂,但一旦完成它就会得到回报。我们就是这样做的 -

  • 帮助源DITA编译XML,存储在SCC(ClearCase)中。
  • 帮助修改XMetal
  • 使用自定义Perl / Java预处理帮助编译,自定义Open DITA Toolkit
  • 帮助源在编译时交叉引用应用程序资源,.RC文件等
  • 帮助提供单一来源,PDF,CHM,Eclipse Help,HTML。
  • 的可交付成果
  • 单一来源存储库可为包含数千个共享主题的多个产品10+提供帮助。

根据您的描述我会看Eclipse帮助,它不易于集成到.NET或MFC应用程序中,您基本上必须执行帮助映射以解析对URL的请求,然后将URL激发到Eclipse帮助包装器或浏览器。

答案 6 :(得分:2)

如果您正在“仅提取并运行”,那么您将遇到安全问题。如果您是运行Vista(或更高版本)的用户,则尤其如此。您是否有理由避免在安装程序中打包应用程序?使用安装程序可以缓解“外部源”问题。您可以毫无问题地使用.chm文件。

我们使用InstallAware来创建我们的安装包。它不便宜,但非常好。如果您关注成本,WIX是开源的,非常强大。 WIX确实有学习曲线,但它很容易使用。

答案 7 :(得分:2)

  

PDF的缺点是需要Adobe Reader

我在家中和工作时在Windows上使用Foxit Reader。更小,更快打开。当您想知道a80000326.pdf到底是什么以及为什么它会堵塞您的文档文件夹时非常方便。

答案 8 :(得分:2)

我认为我们最终将为我们的应用程序提供的解决方案是自己托管帮助文件。这使我们可以立即访问文件并使其保持最新。

我计划将内容加载到一系列XML文件中,每个文件都包含特定项目的帮助。此XML将包含指向其他XML文件的链接。我们将根据需要使用XSLT显示内容。

根据许可,我们可能会构建一个特定于客户端的XSLT文件,以便根据需要定制外观。我们可能只需要能够为我们产品的特定版本提供帮助,这可以通过过滤掉XSLT中的内容来完成。

答案 9 :(得分:1)

我使用一个名为AuthorIT的商业软件包,它可以生成许多不同的格式,例如chm,html,pdf,word,windows help,xml,xhtml以及其他一些我从未听说过的格式(dita响铃?)。 它是一个面向技术文档编写者需求的内容管理系统。 优点是您可以使用和重复使用相同的内容来构建一组指南,然后以不同的格式生成它们。

所以关于选择chm或html的问题的底线是什么,如果你使用它,你不会被锁定为给定的格式,但你可以提供几个用户可以选择的,你甚至可以随时添加更多格式,无需额外费用。

如果您只有一个指南来创建它将不值得您,但如果您有一个文档设置来管理,那么这是我所知道的最好的。他们的支持也很有帮助。