回到过去,帮助不是微不足道的,但可能:生成一些带有特殊标签的时髦.rtf文件,通过编译器运行它,你得到一个真正运行良好的WinHelp文件(.hlp).
然后,微软决定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使它无法使用,因为Help系统应该为用户提供帮助,而不是产生更多的问题.
看来CHM帮助文件不再是选择的帮助文件格式.
WinHelp
- 已过时
HtmlHelp(CHM)
- 默认情况下不支持Vista
- 在网络共享上不能正常工作
帮助2(HXS)
- 我知道这在VS2005 +中用于显示帮助
基于Web
- 可能很难管理多个版本
您将在从同一代码库提供多个版本的新(C#)应用程序中使用哪种帮助文件格式?
我们想使用CHM帮助,但它似乎并不是微软希望我们进入的方向.
有没有人使用HXS作为他们的帮助文件?
反馈赞赏
根据lassevk评论更新;
看起来好像HXS帮助并不打算用于普通的帮助项目.
我需要一些帮助,我有一些文件.hlp,我想在.chm文件中转换它,因为这些文件不能在Windows 10上运行.
为了您的帮助,谢谢!
如何将组件帮助文件集成到Delphi 2006帮助系统中,以便
在按F1时可以获得帮助.帮助文件采用hlp和chm格式.
在过去,帮助并非微不足道,而是可能的:生成一些带有特殊标签的时髦 .rtf 文件,通过编译器运行它,然后您会得到一个实际上运行良好的 WinHelp 文件 (.hlp)。
然后,Microsoft 认为 WinHelp 不再时髦和酷,并转而使用 CHM,直到他们实际上从 Vista 中删除了 WinHelp。
现在,CHM 可能不错,但是每个尝试在网络上打开 .chm 文件的人都会知道由安全限制引起的“导航到网页已取消”屏幕。
虽然有一些方法可以让 CHM 脱离网络工作,但这并不是一个好的选择,因为当用户按下帮助按钮时,他需要帮助而不必进行一些时髦的设置
底线:我发现 CHM 绝对无法使用。但是 WinHelp 也不再是一个选项,我想知道有什么替代方案,尤其是在与我的应用程序集成时(即对于 WinHelp 和 CHM,有一些功能可以让您直接跳转到某个主题)?
PDF 的缺点是需要 Adobe Reader(或者不是很多人使用的更轻量级的阅读器之一)。我可以接受这种看法,因为这是当今的标准,但是您能否可靠地告诉它跳转到给定的页面/锚点?
HTML 文件似乎是最好的选择,然后你只需要处理不同的浏览器(CSS 和其他东西)。
编辑:我希望创建自己的帮助文件。由于我是“无需设置,只需提取和运行”理念的粉丝,我过去曾多次遇到该问题,因为我的许多用户会在网络之外运行它,这正是导致此问题的原因。
因此,我正在寻找一种更强大且面向未来的方式来为我的用户提供帮助,而无需为我制作的每个应用程序编写不同的帮助系统。
CHM 是一种非常好的格式,但是安全性使其无法使用,因为帮助系统应该为用户提供帮助,而不是产生更多问题。
我的应用程序附带一个.hlp文件。
因为自从我上次编写该应用程序以来功能并未更改,所以hlp(写于2003年)仍然有效。
但是,当我在Delphi XE7中编译该应用程序时,无法使该应用程序重新识别hlp文件。
在.dpr文件中
begin
Application.Initialize;
Application.HelpFile := 'Life32.hlp';
Application.Run;
//sometimes the application hung here, due to OLE issues
//exitprocess prevents that.
ExitProcess(0);
end.
Run Code Online (Sandbox Code Playgroud)
当我做
procedure TProgCorner.Button2Click(Sender: TObject);
begin
Application.HelpContext(4);
end;
Run Code Online (Sandbox Code Playgroud)
我懂了
$ 75EEB9BC的首次机会例外。带有消息“未安装上下文相关帮助”的异常类EHelpSystemException。
helpfile
表单的属性设置为exename.hlp
。在资源管理器中
手动双击.hlp
文件即可打开hlp文件。
如何在调用时让Delphi打开hlp文件?