整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

「原创」用Htmlhelp Workshop制作Windows 帮助文件


(本‬文‬作‬于‬2013年‬并‬发‬表‬在‬其‬它‬平台,因‬时‬间太久‬个‬别‬配‬图‬已‬不‬能加‬载‬)对于经常开发应用软件的人来说,都希望创建一个帮助系统,帮助使用者了解自己软件的功能与应用方法。如何创建自己软件的帮助系统呢?本文就这方面的问题谈谈自己的应用方法,也希望通过自己的实际应用经验能对朋友们有所帮助。

Windows 98及以上版本的帮助文件与Windows 95的有比较大的改变,它使用一种基于HTML文件特征的帮助文件,用Internet Explorer显示帮助内容,支持HTML、ActiveX、Java、脚本(Java脚本和VB脚本)以及HTML图像格式(.JPEG、GIF、PNG),它的图标也变了,后缀名为chm,Windows 98称之为Compiled HTML Help File。为了叙述方便,下面就称之为chm文件。典型的Windows 98规范的帮助文件(.chm文件)的窗口和Windows 98资源管理器差不多,左侧是目录、索引和搜索这三个功能项,通过选项卡切换;右侧是HTML文件的显示部分,改变了原来帮助文件目录窗口和主题窗口分离的情况。由于HTML文件具有多媒体表现力,因此chm文件的内容不再局限于文字和静态图像,在其中可以插入GIF动画,也可以利用浏览器的插件在文档中播放声音文件、动画影片、或其它格式的多媒体内容。加入URL地址可与因特网联系在一起,这样chm文件就不局限于包装好的内容了,它是微软公司的下一代联机帮助系统。同时,chm文件的核心是充分利用HTML文件的表现能力,对分散的HTML文件作整体的包装,这也是目前在Web网页以外利用HTML文件的一个趋势。如果你用这个方式制作学习教程、电子图书和杂志,或为用户提供产品目录和宣传材料,比已经流行的PDF文件更简洁和方便。

  chm文件从结构上来看可分为两个部分:运行器和文档内容。运行器是操作系统的一部分,而文档内容随其所附的应用程序而变化。这与以前的Winhelp的结构没有多少差别。不过运行器部分有了较大的改进,运行器很小巧并且不直接运行HTML文件,而是操作一个ActiveX 的组件,控制支持ActiveX 组件的网页浏览器,如微软的Explorer 3.0以上版本的浏览器。它的一个好处是能跨平台运行,只要有不同平台上的运行器和浏览器,chm文件不再需要重新编制。  制作chm文件的工具是微软公司的Htmlhelp Workshop工具包,目前,最新的HTML Help Workshop版本是4.74。这是中文版的,安装Htmlhelp Workshop很方便,只要按照提示进行即可。它的使用也很方便,没有编程和写语言的要求,只要你会制作HTML文件就行了。

  制作chm文件很方便,也很简单。大量的工作是以编写HTML文件为主,它的每个主题就是一个HTML文件,这些主题应该事先编辑好,并用Internet Explorer检查确认无误。主题文件可以用任何一个HTML编辑器编辑,也可用Htmlhelp Workshop编辑。如果不熟悉HTML文件的编辑,还可用Word,因为Word 97以上版本可以把Word文档(.doc文件)另存为HTML文件,还可以将Word文档批量转换成HTML文件。这样就可以完全按照编辑Word文档的习惯编辑成Word文档,再转换成HTML文件。

  运行Htmlhelp Workshop时,它的工作窗口很简单,菜单栏上有五个命令,分别是“文件”、“视图”、“测试”、“工具”、“帮助”。下面的工具栏有五个按钮,分别是“新建”、“打开”、“编译HTML文件”、“校验编译文件”、“联机帮助”。下面介绍具体步骤:

一、创建帮助文本

创建帮助文本是创建帮助系统的第一步。所谓帮助文本,就是针对自己开发的应用软件的功能、使用方法的介绍和说明。这里,以我开发的《通信工程(概)预算系统》为例,谈谈其帮助系统的创建过程。用WORD2000创建《通信工程(概)预算系统帮助》文本。

通信工程(概)预算系统主界面

通信工程(概)预算系统帮助文本

二、创建分页网页文件

根据帮助系统框架结构,将每一段需要分页显示的帮助文本用WORD2000转换成网页文件。下图是通信工程(概)预算系统帮助需要的分页网页文件。

分页网页文件  

三、创建项目文件 

 启动Htmlhelp Workshop系统,打开主界面。







新建一个方案

单击Htmlhelp Workshop菜单或工具栏中的“新建”命令,这时出现“选择新建内容”的对话框。这里有五个选项:“方案”、“文本”、“HTML文件”、“目录”、“索引”。选择“方案”,接着出现“方案”向导,告诉你这个向导可以转换的文件格式,一般情况下我们是要创建方案(.hhp)文件,不需要转换。直接进入“下一步”指定放置的目录和输入文件名就可以了,单击“下一步”,进入了“现有文件”对话框,如果你想将已经存在的文件包含进“方案”里,在下面列表中选择。这里一般空着,这些文件(包括已经编辑好的主题文件)以后可以添加。进入“下一步”后再“确定”就进入了Htmlhelp Workshop工作窗口。在窗口的上方是3个选项卡,分别是“方案”、“目录”、“索引”。在“方案”窗口的左侧是7个按钮,它们的功能名称自上而下分别是:“改变项目选项”、“添加/删除主题文件”、“添加/修改窗口定义”、“HHTML帮助API信息”、“校验HTML源文件”、“保存项目、目录和索引文件”、“保存全部文件并编译”。

  单击“改变项目选项”按钮,出现“选项”对话框,光标在“常规”选项卡的“标题”文本框内闪烁,在这里加入标题,编译后这个标题将出现在chm文件窗口的标题栏中。其它的内容暂时用系统的默认值。然后单击“添加/删除主题文件”按钮,再选择“添加”按钮,把作为封面页的HTML文件添上。封面页的文件一定要有,否则编译的帮助文件运行后,系统会报错。好了,简单的“方案”编辑就完成了。  

四、创建目录文件 

 单击“目录”选项卡,这时系统弹出一个对话框,提示你“方案”还没有关联目录文件(.hhc),你可以创建一个新的目录文件,或者指定一个现有的。这里选择“创建一个新目录文件”,进入下一步请你选定一个新目录文件的名称和存放路径,指定后出现目录编辑窗口。在目录窗口的左侧有11个按钮,前5个分别是:“目录工具”、“插入标题”、“插入页面”、“编辑选择”、“删除选择”,中间4个箭头用来调整指定标题或页面的位置,最后两个已在项目编辑窗口中出现过。根据需要插入标题或页面目录,按下“插入标题”或“插入页面”按钮,都会弹出“目录条目”对话框,在“条目标题”文本框中输入条目的标题,并根据情况选定对应的主题(HTML文件),单击“条目标题”下的“添加”按钮,在弹出的对话框的下面“文件或URL地址”文本框中输入文件名或URL地址并确定;单击“高级”选项卡,在“图像索引”栏中为条目指定图标,比如包含其它条目的条目可以用书形图标,而页面条目的可以用问号图标。如果在单击“插入页面”按钮之前所选择的条目不包含别的条目,也不被别的条目所包含,那么会询问“是否要创建一个起始条目”,选择了“是”会增加起始条目(一级条目),选择了“否”会增加一个子条目。标题可以不添加主题文件或URL地址,也可放置需要的主题文件,作为标题的说明内容。标题可以分为多级,要按照制作的内容统一考虑。如果觉得不满意,可以用左侧的箭头进行调整,也可以选定该条目,单击鼠标右键,不但可以调整,还可以插入标题、主题或目录文件。编辑目录文件是制作chm文件最关键的工作,目录文件应该包含一个chm文件所有目录(主题),而每个目录又包含条目标题(名称)和该条目的主题文件,要避免条目标题与对应的主题不一致的情况出现。等所有目录都添加好后目录就算完成了。

创建目录

已生成的帮助文件 

 完成目录编制后,一个chm文件已具备了雏形,索引的内容暂时空着。保存项目文件和目录文件后就可以编译,编译就是把所有用到的HTML文件统统压缩后包装在一起,形成一个后缀名是.chm的文件。在主工具栏按钮中可以找到编译按钮和试运行按钮,也可直接按项目窗口左下方的“保存全部文件并编译”按钮进行编译。编译后再运行就可以看到作品的面貌了。目录的内容在编译后显示在chm文件窗口的左侧,可以展开标题后显示以下的目录,单击目录可以打开相应的主题文件,显示相应的内容。如果发现问题,还可以进行修改调整。

  五、创建索引文件 

 在Htmlhelp Workshop的工作窗口上单击“索引”选项卡,和创建目录文件一样,也会弹出一个对话框,操作也是一样的。进入索引编辑窗口,左侧也有11个按钮,有8个是已经熟悉的,还有3个分别是:“索引工具”、“插入关键字”、“排序关键字”。所谓关键字是用户可能用到的并与一个或多个帮助主题文件关联在一起的字、词或短语,索引文件(.hhk)也是一个HTML文件,它包含若干个关键字,当用户打开chm文件后,单击索引标签并输入一个关键字后,chm文件将显示与这个关键字有关的主题的列表,非常方便地找到相关主题。单击“插入关键字”按钮,出现一个“索引项”对话框,在“常规”选项卡的“关键字”文本框中输入关键字,单击“添加”按钮指定与该关键字相关联的主题文件。如果想跳转到另一个关键字,在“索引项”对话框中按“高级”选项卡,选中下面的“目的地是另一个关键字”,单击“常规”选项卡,单击“添加”按钮,在“文件或URL地址”框中输入要跳转的关键字,单击“确定”。

创建索引

六、创建搜索 

 chm文件的“搜索”选项卡允许用户在所有主题文件中搜索字、词或短语,将它们的标题显示出来,而且在主题中用醒目的方式来显示。打开一个方案文件,单击“方案”选项卡的“改变方案选项”,在“选项”对话框的“编译”选项卡中选中“编译全文搜索信息”即可。  上述介绍的是编制HTML帮助文件的基本步骤,上手很容易。但它的功能远非这些,如在窗口定义中可以设计你所喜爱的形式,几乎所有的窗口要素都可以改变。向HTML文件中插入快捷方式、相关主题、关键字链接、联想链接、HTML Help ActiveX控件、Java脚本、弹出式窗口等等,详细的内容请参考Htmlhelp Workshop的帮助文件,或微软的相应网页。相信你试过以后一定会喜欢它。

TML 帮助器用于修改 HTML 输出。


HTML 帮助器

通过 MVC,HTML 帮助器类似于传统的 ASP.NET Web Form 控件。

就像 ASP.NET 中的 Web Form 控件,HTML 帮助器用于修改 HTML。但是 HTML 帮助器是更轻量级的。与 Web Form 控件不同,HTML 帮助器没有事件模型和视图状态。

在大多数情况下,HTML 帮助器仅仅是一个返回字符串的方法。

通过 MVC,您可以创建您自己的帮助器,或者直接使用内建的 HTML 帮助器。


标准的 HTML 帮助器

MVC 包含了大多数常用的 HTML 元素类型的标准帮助器,比如 HTML 链接和 HTML 表单元素。


HTML 链接

呈现 HTML 链接的最简单的方法是使用 HTML.ActionLink() 帮助器。

通过 MVC,Html.ActionLink() 不连接到视图。它创建一个连接到控制器操作。

Razor 语法:

@Html.ActionLink("About this Website", "About")

ASP 语法:

<%=Html.ActionLink("About this Website", "About")%>

第一个参数是链接文本,第二个参数是控制器操作的名称。

上面的 Html.ActionLink() 帮助器,输出以下的 HTML:

<a href="/Home/About">About this Website</a>

Html.ActionLink() 帮助器的一些属性:

属性描述
.linkTextURL 文本(标签),定位点元素的内部文本。
.actionName操作(action)的名称。
.routeValues传递给操作(action)的值,是一个包含路由参数的对象。
.controllerName控制器的名称。
.htmlAttributesURL 的属性设置,是一个包含要为该元素设置的 HTML 特性的对象。
.protocolURL 协议,如 "http" 或 "https"。
.hostnameURL 的主机名。
.fragmentURL 片段名称(定位点名称)。

注释:您可以向控制器操作传递值。例如,您可以向数据库 Edit 操作传递数据库记录的 id:

Razor 语法 C#:

@Html.ActionLink("Edit Record", "Edit", new {Id=3})

Razor 语法 VB:

@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})

上面的 Html.ActionLink() 帮助器,输出以下的 HTML:

<a href="/Home/Edit/3">Edit Record</a>


HTML 表单元素

以下 HTML 帮助器可用于呈现(修改和输出)HTML 表单元素:

  • BeginForm()

  • EndForm()

  • TextArea()

  • TextBox()

  • CheckBox()

  • RadioButton()

  • ListBox()

  • DropDownList()

  • Hidden()

  • Password()

ASP.NET 语法 C#:

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>

<% using (Html.BeginForm()){%>

<p>

<label for="FirstName">First Name:</label>

<%= Html.TextBox("FirstName") %>

<%= Html.ValidationMessage("FirstName", "*") %>

</p>

<p>

<label for="LastName">Last Name:</label>

<%= Html.TextBox("LastName") %>

<%= Html.ValidationMessage("LastName", "*") %>

</p>

<p>

<label for="Password">Password:</label>

<%= Html.Password("Password") %>

<%= Html.ValidationMessage("Password", "*") %>

</p>

<p>

<label for="Password">Confirm Password:</label>

<%= Html.Password("ConfirmPassword") %>

<%= Html.ValidationMessage("ConfirmPassword", "*") %>

</p>

<p>

<label for="Profile">Profile:</label>

<%= Html.TextArea("Profile", new {cols=60, rows=10})%>

</p>

<p>

<%= Html.CheckBox("ReceiveNewsletter") %>

<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>

</p>

<p>

<input type="submit" value="Register" />

</p>

<%}%>

头条创作挑战赛# 在Excel VBA中,HTMLTextAreaElement对象表示HTML表单中的文本区域元素。它用于处理用户输入的多行文本数据。以下是六个示例代码来解释说明HTMLTextAreaElement对象的用法:

1、获取HTMLTextAreaElement元素的值:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
MsgBox textarea.Value

2、设置HTMLTextAreaElement元素的值:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
textarea.Value = "Hello, World!"

3、获取HTMLTextAreaElement元素的行数:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
MsgBox textarea.Rows

4、设置HTMLTextAreaElement元素的行数:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
textarea.Rows = 5

5、获取HTMLTextAreaElement元素的列数:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
MsgBox textarea.Cols

6、设置HTMLTextAreaElement元素的列数:

Dim textarea As HTMLTextAreaElement
Set textarea = ie.document.getElementById("myTextArea")
textarea.Cols = 10

在这些示例代码中,我们使用了ie.document.getElementById方法来获取HTML页面上具有特定id的HTMLTextAreaElement元素。然后,我们可以使用该元素的各种属性(例如Value、Rows、Cols)来读取或设置相关信息。这些代码演示了如何操作HTMLTextAreaElement对象来处理文本区域元素。

在使用HTMLTextAreaElement对象时,有几个重要的注意事项:

1、获取元素对象:在访问HTMLTextAreaElement对象之前,需要确保文档已经加载完成并且元素已经存在。可以通过ie.document.getElementById或其他获取元素的方法来获取HTMLTextAreaElement对象。

2、可用性检查:在访问HTMLTextAreaElement对象之前,最好检查元素的可用性。可以使用If...Is Nothing语句来检查对象是否为Nothing,以避免在元素不存在时引发错误。

3、属性访问:可以通过HTMLTextAreaElement对象的属性来获取和设置相关信息,如Value、Rows、Cols等。在操作这些属性时,需要注意其数据类型和取值范围。

4、事件处理:HTMLTextAreaElement对象可以绑定事件处理程序来响应用户的交互。可以使用element.on事件名称语法或AddHandler语句来为元素添加事件处理程序。

5、样式和布局:可以使用HTMLTextAreaElement对象的样式属性来控制文本区域的外观和布局。可以修改元素的宽度、高度、边框样式等来满足特定的需求。

6、向元素添加文本:可以使用HTMLTextAreaElement对象的Value属性来设置文本区域元素的值。注意文本区域中可以包含多行文本,需要使用适当的换行符(如vbCrLf)来分隔每一行。

在使用HTMLTextAreaElement对象时,遵循这些注意事项可以帮助你正确地操作和处理文本区域元素。