Windows帮助系统制作指南 陈晓、梁昌霖 1998年 第51期 09版 #1 一、概述 帮助系统是沟通软件作者和用户的桥梁,一个好的帮助系统同时也是一个联机教学课件。为了让用户接受软件,让软件走向市场,为应用程序制作一个优秀的帮助系统至关重要。不同软件的帮助系统可能会风格迥异,但是随着Windows在操作系统中霸主地位的确立,Windows风格成了帮助系统中的主流风格。下面将通过一些简单的实例,从技术技巧和艺术效果两个方面,由浅入深地介绍具有Windows风格的帮助系统的制作。 #1 二、理解与制作帮助系统 ⒈认识帮助系统 一个具有Windows风格的帮助系统由两部分组成:帮助驱动程序(Winhelp.exe)和帮助文件(后缀为 .hlp 的文件)。帮助驱动程序能够在运行帮助系统时按照指定的格式显示帮助文件中的内容,它是由Windows提供的一个独立的应用程序。帮助文件是一个包含帮助信息及其显示格式的文档,制作帮助系统实质就是编写帮助文件。 当运行帮助系统时,会弹出一个帮助窗口,一个典型的帮助窗口和一般的应用程序窗口一样,具有窗口标题区、窗口菜单条、窗口工具条,除此之外是帮助标题区、主题内容区。如^5100tt1^所示。 标题区用于显示当前帮助主题的标题信息,是一个非滚动区域,即当通过窗口滚动条的滚动来查看帮助信息时,标题区内容在帮助窗口的相对位置保持不变。一个帮助系统可以没有标题区。 主题内容区是显示帮助信息的区域。严格地说,一个帮助文件属于超文本,通过不同的“节点”实现不同主题信息的链接和跳转,在帮助系统中实现跳转的“节点”称为“热区”。所谓“热区”,就是在帮助系统中可以实现帮助主题的跳转显示或弹出显示的文本或图象区域。当鼠标经过热区时,将变为手指形形状,当点击“热区”时跳转或弹出另一个帮助主题页。 一般的帮助系统通过三种方式为用户提供帮助信息:通过“目录”窗口分类选取帮助主题、通过“索引”窗口搜索关键词来选取帮助主题以及上下文敏感的联机帮助方式。 ⒉一步一步学做帮助系统 认识和理解了帮助系统以后,还需要有以下工具软件: ·帮助系统驱动程序:Winhelp.exe,该程序由Windows提供; ·能够编写.RTF格式文件的字处理软件。如Word、WordPefect for Windows、Lotus AmiPro等都是极好的字处理软件,此处选用流行的Word; ·帮助文件编译器。此处选用Microsoft的Help WorkShop 4.0(以下简称HW4),许多微软产品中都提供了该程序; ·图象热区编辑器。此处选用Shed.exe,许多微软产品中都提供了该程序。 下面可以开始动手制作帮助系统了。 第一步:编写脚本 ⑴准备好所需的图象文件和主题页的脚本文字。 如本例中需要4副图,分别存为以下文件: ·主题标题图——Title.bmp。 ·狮子的图象——Lion.bmp。 ·鸟的图象——Bird.bmp。 ·鱼的图象——Fish.bmp。 ⑵打开Word,选择菜单项“文件/新建”,按照默认的模板新建一个普通格式的文档。 ⑶ 选择菜单项“插入/图片”,选择图象文件“Title.bmp”,插入到标题区。 ⑷ 以同样的方法插入图象文件“Lion.bmp”,并在该图象后输入文字“百兽之王——狮子”。 ⑸依次插入图象文件“Bird.bmp”、“Fish.bmp”,并分别在图象的后面输入文字“天高任鸟飞——鸟”和“海阔凭鱼跃——鱼”。 ⑹按下CTRL+ENTER键,插入分页符。 ⑺在狮子主题页中输入以下文字。 狮子: 哺乳类动物,食肉类的猛兽,身长约八九尺,凶猛异常,敢于老虎争锋。 ⑻以此方式,依次输入老虎主题页的内容。 老虎:哺乳类动物,食肉类的猛兽,体形类似猫,身长约五六尺。 鱼的主题页内容: 鱼:脊椎动物的一种,生活在水中。 鸟的主题页内容: 鸟:禽类的统称,属于脊椎动物,体生羽毛,后肢为爪而能走,前肢变为两翼而能飞。 哺乳动物主题页的内容: 哺乳类动物:脊椎动物的一种,皮肤生毛,用肺呼吸,大都是胎生的,在动物中极为高等。 ⑼调整每一页的布局及字体大小、颜色等格式,直到满意为止。 调整好的第一页布局如^5100tt2^所示。 ⑽选择菜单项“文件/保存”,以“.RTF”格式保存文件名。为“aniKing.rtf ”; ⑾启动HW4.0。 ⑿选择菜单项“File/new”,在弹出的对话框中选择“Help Project”,新建一个帮助项目文件“aniKing.hpj ”。 ⒀点击窗口右边的“File...”按钮,在弹出的对话框中选择“Add...”按钮,在文件列表中选择文件“aniKing.rtf ”。 ⒁选择菜单项“File/Compile...”,在弹出的对话框中的设置如^5100tt3^所示。 ⒂编译后将会自动运行制作的帮助系统,其界面与第一个图相同,但没有热区,也无法实现主题的跳转。 第二步 设置主题ID号 ⑴回到Word,将光标置于第一个主题页的首部。 ⑵选择菜单项“插入/脚注与尾注”,在弹出的对话框中的设置如^5100tt4^所示。 ⑶输入该主题页的主题ID号“Cover”,如^5100tt5^所示。 ⑷以同样方法依次输入狮子主题页的主题ID号“Lion”,老虎主题页的主题ID号“Tiger”,鱼的主题页的主题ID号“Fish”,鸟的主题页的主题ID号“Bird”,哺乳动物主题页的主题ID号“MamMal”; 第三步 设置文本热区 ⑴回到第一主题页,选择文字“狮子”,然后选择菜单项“格式/文字”,在弹出的对话框中设置该词为双下划线。 ⑵在“狮子”的后面输入狮子主题页的主题ID号“Lion”。 ⑶选择菜单项“格式/文字”,设置“Lion”为隐藏,“Lion”变为不可见。 ⑷选择菜单项“工具/选项”,然后在弹出的选项对话框中选择“视图”页,在设置“显示非打印字符”栏中选中“隐藏文字”,这时“Lion”以虚下划线的格式显示。 ⑸以同样的方法设置第一主题页中其它的文字热区,完成后如^5100tt6^所示。 ⑹转向老虎主题页,以同样的方法将文字“老虎”设置为双下划线,并紧接其后输入第三页的主题ID号“Tiger”,并设置为隐藏属性。 ⑺再设置文字“哺乳类动物”为单下划线,并紧接其后输入哺乳动物的主题ID号“MamMal”,也设置为隐藏属性,如^5100tt7^所示。 ⑻依次设置其它主题页中的文本热区。 ⑼再回到HW4中,重新编译,查看编译后运行的帮助系统,第一页设置为热区的文字都变成绿色,将鼠标移至这些文字时,鼠标变为手指形状,点击“狮子”,会跳转到狮子主题页,在狮子主题页中点击“哺乳动物”会弹出哺乳动物主题页,点击“老虎”,会跳转到老虎主题页,如^5100tt8^所示。 第四步 设置图象热区 ⑴启动Shed.exe程序; ⑵选择菜单项“File/open”,选择图象文件“Lion.bmp”。 ⑶在图象的左上角按下鼠标左键,拖拽至右下角,这时图象上出现一个黑色的矩形框。 ⑷选择菜单项“Edit/Attibutes”,在弹出的对话框中的设置如^5100tt9^所示。 ⑸选择菜单项“File/Save as”,将图象文件另存为“Lion.shg”。 ⑹以同样方法分别在图象文件“Bird.bmp”、“Fish.bmp”中设置热区。 ⑺回到Word中,选择狮子的图象,然后删除,在同样的位置输入语句: {bmlLion.shg} ⑻以同样的方法处理鸟和鱼的图象,处理完后如^510tt10^所示。 ⑼保存文件后回到HW4.0,重新编译帮助项目,在编译后运行的帮助系统中,移动鼠标,可以发现图象热区,点击图象热区,可以实现相关主题页的跳转。 第五步 设置标题区为不滚动区 ⑴回到Word中,选取插入的标题图象。 ⑵选择菜单项“格式/段落”,在弹出的对话框中选择“正文排列”页,并在“分页”栏中选择“与下段同页”。 ⑶保存文件后回到HW4.0,重新编译帮助项目,在运行的帮助系统中,移动滚动条,可以查看效果。 至此,一个标准的具有Windows风格的帮助系统已初具规模。 第六步 制作目录查询窗口 ⑴在HW4.0中选择菜单项“File/New”,在弹出的对话框中选择“Help contents”后,弹出编辑目录 (.cnt) 文件的窗口。 ⑵点击窗口右边的按钮“Add Above”,在弹出的对话框中的设置如^510tt11^所示。 ⑶ 再点击窗口右边的按钮“Add Below”,在弹出的对话框中的设置如^510tt12^所示。 ⑷ 以同样的方法分别加入“老虎”、“鸟”、“鱼”等主题目录。 ⑸ 以文件名“aniking.cnt”保存该文件。 ⑹ 重新编译帮助项目,在编译后运行的帮助系统如^510tt13^所示,点击任一目录项,可以跳转到相应的主题页。 第七步 制作索引查询窗口 ⑴ 回到Word中,将光标插入狮子主题页的首部。 ⑵ 选择菜单项“插入/脚注与尾注”,在“自定义标注”栏中输入字符“$”,然后输入主题标题“狮子”,主题标题是唯一标定的。 ⑶ 以同样方法设置其它主题页的主题标题。 ⑷ 再将光标插入狮子主题页的首部,选择菜单项“插入/脚注与尾注”,在“自定义标注”栏中输入字符“K”,然后输入索引关键词(又称K-关键词)“狮子;脊椎动物;哺乳动物;Lion”,一个主题页中可有多个索引关键词,不同的关键词之间应用“;”分开,不同的主题页可使用相同的索引关键词。 ⑸ 以同样方法设置其它主题页的索引关键词,设置好后如^510tt14^所示。 ⑹ 保存文件后回到HW4.0,重新编译帮助项目,在编译后运行的帮助系统中增加了索引窗口,选择索引窗口,在搜索关键词设置中输入“脊椎”,会选中“脊椎动物”,点击脊椎动物,会弹出一个列表窗口,显示了索引关键词中包含“脊椎动物”的所有主题页的主题标题,选择一条,则可跳转显示相应的主题页,如^510tt15^所示。 #1 三、增加帮助系统的艺术效果 ⒈多媒体功能的应用 前面已经制作了一个与普通软件相比毫不逊色的帮助系统,但这并不完美。现在希望能够在狮子主题页上观看与狮子生活有关的动画。假设已经准备好了这样的一个动画文件“Test.avi”,有两种方法在帮助主题页播放这个动画。 方法一: ⑴ 回到Word,再增加一个动画主题页,在新增的主题页输入语句“{mci PLAY,Test.avi}”。 ⑵ 将动画主题页的ID号设置为“Video”。 ⑶ 制作一个能够表示播放动画的小图片“video.bmp”。 ⑷ 启动Shed.exe,打开“Video.bmp”,设置热区,将“Context String ”项设置为动画主题页的ID号“Video”,“Type”项中设置为“Popup”。 ⑸ 保存为“video.shg”。 ⑹ 回到Word,在狮子主题页输入以下文字。 单击此处“{bmcvideo.shg}”可观看与狮子生活有关的动画 ⑺ 保存文件后回到HW4.0,重新编译帮助项目,在编译后运行的帮助系统中,跳转到狮子主题页,可以查看效果,如^510tt16^所示。 方法二: ⑴ 回到Word,将光标置于狮子主题页的首部,选择菜单项“插入/脚注与尾注”,在“自定义标注”栏中输入字符“!”,然后在脚注页中输入宏指令: CreateButton("btn_video","动画","ExecFile(Test.Avi)") ⑵ 保存文件后回到HW4.0,重新编译帮助项目,在编译后运行的帮助系统中,跳转显示狮子主题页后,可以看见窗口工具条上多了一个标号为“动画”的工具按钮,点击该按钮,可以播放动画。 2.正确使用宏指令 在播放动画文件时已经使用了一条宏指令:CreateButton("btn_video","动画","ExecFile(Test.Avi)")。HW4.0提供了一套功能十分强大的宏指令集,通过使用宏指令,可以方便地控制运行的帮助系统,制作的帮助系统更加精彩。 ⑴ 宏指令的使用规则 在格式上,宏指令类似标准的C语言中的函数,一条宏指令有两个重要组成部分:宏指令名称和宏指令参数,其一般用法为: 宏指令名称(参数1,参数2...) 在使用宏指令时应掌握以下规则: ·宏指令可以不带参数,也可以带多个参数,不带参数时不能省略宏指令名称后的括号,带多个参数时,多个参数应使用逗号分开; ·宏指令的参数可以是字符,也可以是数值,但宏指令不支持变量参数和表达式参数; ·有的字符型参数需要放在双引号或者单引号的里面; ·当字符型参数中包含双引号、单引号、或者符号“`”和“\”时,需在这些符号的前面添加一个符号“\”; ·在同一行中可以使用多条宏指令,但不同的宏指令之间应用冒号(“:”)分开。 ⑵ 引用宏指令的方法 ·在项目文件设置的时候引用宏指令,只要运行帮助系统则执行该指令; 例如在帮助项目文件的CONFIG节中添加一条宏指令为:: CreateButton("btn_close","关闭[&X]","exit()") 当运行帮助系统时,它向帮助窗口的按钮条添加一个标号为“关闭”按钮,并指定了热键,它对整个帮助过程都起作用,即不管当前处在哪个帮助主题页中,都随时可以点按该关闭按钮,关闭帮助窗口; ·在主题页的脚注中引用宏指令,只要帮助系统显示该主题页即执行该指令,在前面播放动画的例子中就是通过此种方法引用宏指令的; ·在目录窗口中引用宏指令,那么当用户双击相关主题页的图标时,即执行该宏指令; ·在索引窗口中引用宏指令,那么当用户选择该索引关键词后,即执行该宏指令; ·在热区中引用宏指令,那么当用户点击该热区时即运行该指令, 如果热区为文本热区,引用宏指令的设置方法是,在格式化为双(或单)下划线的热区正文后面键入由惊叹号“!”打头的宏指令,惊叹号和宏指令都设置为隐藏格式,如果热区为图片热区,可以在Shed程序中设置热区属性时在“Binding”栏中将“Type”项设置为“Macro”; ·使用外部程序的函数调用,使正在运行的帮助系统执行指定的宏指令。 一般来说,只要能够灵活地使用HW4.0中提供的这些宏指令,就可以随心所欲的控制正在运行的帮助系统,即使这些宏指令仍然不能满足自己的需要,可以通过DLL函数来创建自己需要的宏指令,因为HW4.0的宏指令集是一个开放的指令集合。创建宏指令的具体方法请参照有关的专业资料,不再赘述。 #1 四、Help WorkShop 简明文档 ⒈ HW4.0常用语句介绍 ⑴ {bmx}语句 功能:在主题页中显示图片。 用法:{bmx[ t ],图片文件名}。 说明:“x”是指定图片的显示位置,可以是以下字符 : ·C图片在文字的中间显示.。 ·L图片在行首显示.。 ·Y图片在行尾显示.。 可选参数“t”表示将以主题页的背景色取代图片的白色背景,只有当图片是16色位图片时,该参数才起作用。 ⑵ {button}语句 功能:在主题页中插入一个按钮,该按钮执行指定的宏指令。 用法:{button [按钮标号],宏指令[:宏指令1:…:宏指令N]}。 举例:{button 动画,Execfile(Text.avi)} 该语句在主题页中插入一个标号为“动画”的按钮,点击该按钮则播放动画文件“text.avi”。 ⑶ {ewx}语句 功能:该语句在Help文件中创建一个嵌入窗口。 用法:{ewxDLL文件名,窗口名称,有关数据}。 说明:“x”的用法同{bmx}语句;“DLL文件”是控制窗口的动态链接库文件,该文件以“.DLL”为扩展名,但在{ewx}语句中输入文件名时不需带扩展名,“有关数据”是传递给DLL文件的参数字符串。 举例:{ewl FADE,Amfwnd,Clipbrd.amf}. ⑷ {mci}语句 功能:在主题页中插入和播放动画(.avi)文件。 用法:{mci[_left | _right][选项参数,]播放的文件名}。 说明:“_Left|_rihgt”设置动画文件的插入位置,选项参数定制播放窗口和其它有关设置,可以为以下选值中的一项或者多项,如果使用了多个选项参数,不同的选项参数之间应用空格分开: ·EXTERNAL编译成功的帮助(.hlp)文件不包含该动画文件。 ·NOPLAYBAR播放动画时不显示控制条。 ·NOMENU播放时在控制条中不显示菜单按钮。 ·REPEAT重复播放动画文件,直到关闭为止。 ·PLAY自动播放动画文件。 举例:{mci PLAY,Test.avi} 在该例中,当显示主题页时,将自动播放动画文件“Test.avi”。 ⒉ HW4.0中支持的脚注符号及其功能说明. ·# 为一主题页指定一个唯一标识的ID号,这对每个主题页都是必需的。 ·$ 为一主题页指定一个主题标题名,该标题名将出现在查找主题列表框中、历史列表和书签菜单中,主题标题名也是唯一标识的。 ·K 索引关键词,也是宏指令Klink()中使用的关键词参数。 ·AA-关键词,宏指令Alink()使用的关键词参数。 ·+定义主题的浏览顺序号, 浏览顺序号可以由数字和字母共同组成,编译时按ASC11码值排序。 ·!指定显示主题页时执行的宏指令。 ·*指定编译器有条件地编译某些帮助主题。 ·>指定显示主题页的窗口风格,该窗口风格在Hpj文件的Window节中定义。 3.HW4.0宏指令用法精解 与按钮操作有关的宏指令. ⑴ Back () 功能:显示前一个帮助主题。 用法:无参数。 ⑵BrowseButton() 功能:在帮助系统的工具条中增加前向浏览按钮和后向浏览按钮。 用法:无参数。 ⑶ ChangeButtonBinding() 功能:改变工具条上与指定按钮绑定的宏指令。 用法:ChangeButtonBinding(按钮ID号,宏指令)。 用法举例:ChangeButtonBinding(SeeAlso,Back())。 当执行此宏指令后,点击工具条上ID值为“SeeAlso”的按钮将执行宏指令Back()。 ⑷ ChangeEnable() 功能:为一个按钮指令一条绑定的宏指令,并使此按钮为可执行状态,相当于同时执行了两条宏指令ChangeButtonBinding()和EnableButton()。 用法:同ChangeButtonBinding()。 ⑸ Contents() 功能:显示当前帮助文件的帮助目录窗口,如果没有相关联的目录(.cnt)文件,则显示第一个帮助主题页,相当于点击了工具条上的“目录”按钮。 用法:无参数。 ⑹ CreateButton() 功能:创建一个按钮。 用法:CreateButton( 按钮的ID号,按钮标号,宏指令)。 举例:CreateButton(btn_Avi,动画,ExecFile(Test.avi) )。 该指令为帮助窗口增加一个标号为“动画”,ID号为“btn_Avi”的按钮,点击该按钮时执行宏指令"ExecFile()"。 ⑺ DestroyButton() 功能:删除一个由CreateButton()创建的按钮。 用法:DestroyButton(按钮ID号)。 举例:DestroyButton(btn_Avi)。 该宏指令删除ID号为“btn_Avi”的按钮。 ⑻ DisableButton() 功能:使指定的按钮为不可执行状态(变为灰色)。 用法:DisableButton(按钮ID号)。 ⑼ EnableButton() 功能:使指定按钮为可执行状态。 用法:同DisableButton()。 ⑽ Find() 功能:显示当前帮助系统的查找窗口。 用法:无参数。 ⑾ Finder() 功能:显示当前帮助系统的查找窗口,并保持前一次查找时的状态。 用法:无参数。 ⑿ Menu() 功能:显示快捷菜单,相当于点击了鼠标右键。 用法:无参数。 ⒀ Next() 功能:按浏览次序显示下一个主题页。 用法:无参数。 ⒁ Prev() 功能:浏览次序显示前一主题页。 用法:无参数。 ⒂ Search() 功能:显示索引窗口,相当于点击了工具条上的“索引”按钮。 用法:无参数。 与键盘操作有关的宏指令 ⑴ AddAccelerator() 功能:为一条宏指令指定快捷键。 用法:AddAccelerator(键码,组合键状态,宏指令)。 举例:AddAccelerator(Vk_F9,SHIFT+CTRL,Back())。 当用户按下SHIFT+CTRL+F9键后即执行宏指令Back()。 ⑵ RemoveAccelerator() 功能:删除宏指令的快捷键。 用法:RemoveAccelerator(键码,组合键状态)。 用法举例:RemoveAccelerator(Vk_F9,SHIFT+CTRL)。 该指令删除上例中为宏指令指定的快捷键SHIFT+CTRL+F9。 与主题跳转、搜索有关的宏指令 ⑴ Alink() 功能:搜索与指定的A-关键词相对应的主题标题。 用法:Alink(关键词[;关键词][执行方式,[主题页的ID号,[窗口名称]]]). 举例:Alink(how_to, , ,steps)。 该指令查找A-关键词为“how_to”的主题页的主题标题,并在名称为“Steps”的窗口中显示 ⑵ JumpContents() 功能:跳转到指定的帮助文件的目录窗口。 用法:JumpContents(帮助文件名)。 用法举例:JumpContents(ani.hlp)。 执行该指令后显示“ani.hlp”帮助的目录窗口。 ⑶ JumpContext() 功能:跳转到指定的帮助文件中与指定的上下文号对应的主题页,并显示在指定的窗口中。 用法:JumpContext([帮助文件名>窗口,]上下文号)。 举例:JumpContext( ani.hlp,801)。 该指令跳转到“ani.hlp”帮助文件中上下文号是“801”的主题页。 ⑷ JumpHelpOn() 功能:跳转到怎么使用帮助的主题页。 用法:无参数. ⑸ JumpId() 功能:跳转到指定帮助文件中与指定ID号对应的主题页。 用法:同JumpContext().。 ⑹ JumpKeyword() 功能:跳转到指定帮助文件中K-关键词所指定的主题页. 用法:JumpKeyword(帮助文件名,K-关键词). ⑺ KLink() 功能:搜索与指定的K-关键词相对应的主题页的主题标题。 用法:同Alink()。 ⑻ PopupContext() 功能:在弹出窗口中显示由上下文号指定的主题页。 用法:PopupContext (文件名,上下文号)。 举例:PopupContext(801)。 ⑼ PopupId() 功能:在弹出窗口中显示由主题ID号指定的主题页。 用法:PopupId([文件名,]主题ID号)。 举例:PopupId(another_topic)。 ⑽ UpdateWindow() 功能:跳转到由主题ID号指定的主题页,并显示在指定的窗口上,最后激活当前窗口。 用法:UpdateWindow([文件名>]窗口名,主题ID号)。 与菜单操作有关的宏指令 ⑴ AppendItem 功能:在指定菜单的尾部追加一个菜单项。 用法:AppendItem(菜单ID号,菜单项ID号,菜单项名称,宏指令)。 举例:AppendItem(IDM_BKS,IDM_TLS,工具, Back())。 该指令在ID号为“IDM_BKS”的菜单尾部追加一个ID号为“ IDM_TLS”名称为“工具”的菜单项,选择该菜单项,执行宏指令Back()。 ⑵ ChangeItemBinding() 功能:改变与菜单项绑定的宏指令。 用法:ChangeItemBinding(菜单项ID号,宏指令)。 举例:ChangeItemBinding(notepad_item, ExecFile(notepad))。 该宏指令为ID号为“notepad_item”的菜单项绑定宏指令 ExecFile(notepad)。 ⑶ CheckItem() 功能:在菜单项的左边放置选中标志。 用法:CheckItem(菜单项ID号)。 ⑷ DeleteItem() 功能:删除一个菜单项。 用法:DeleteItem(菜单项ID号)。 ⑸ DisableItem() 功能:使指定的菜单项不可选(变为灰色)。 用法:DisableItem(菜单项ID号)。 ⑹ EnableItem() 功能:使指定的菜单项可选。 用法:EnableItem(菜单项ID号)。 ⑺ ExtAbleItem() 功能:设置指定的菜单项的显示状态。 用法:ExtAbleItem(菜单项ID号,显示状态)。 说明:显示状态可取。 · GRAYED菜单项不可选。 · CHECKED 在菜单项左边放置选中标志。 ⑻ ExtInsertItem() 功能:在指定菜单的指定位置上插入一个菜单项。 用法:ExtInsertItem(菜单ID号,菜单项ID号,菜单项名称,宏指令,位置[,显示状态])。 举例:ExtInsertItem(mnu_file, wpad, 回放, Back(), 3)。 该指令在系统的“File”菜单的第三个菜单项的后面插入一个ID号为“wpad”,标号为“回放”,执行宏指令 Back()的菜单项 ⑼ ExtInsertMenu() 功能:在指定的菜单中插入一个子菜单。 用法:ExtInsertMenu(父菜单的ID号,菜单ID号,菜单名,菜单位置[,显示状态])。 举例:ExtInsertMenu(mnu_help, mnu_wizard, &Wizard, 2) InsertItem()。 该指令在“Help”菜单下插入一个ID号为“mnu_wizard”的子菜单。 ⑽ InsertItem() 功能:在指定菜单的指定位置插入一个菜单项。 用法:InsertItem(菜单ID号,菜单项ID号,菜单项名称,宏指令,位置)。 ⑾ InsertMenu() 功能:在菜单条中插入一个菜单。 用法:InsertMenu(菜单ID号,菜单名称,菜单位置)。 举例:InsertMenu(IDM_UTIL, &Utilities, 3)。 该宏指令在菜单条中第三个菜单后面插入一个ID号为“IDM_UTIL”,标号为“Utilities”,快捷键为“ALT+U”的菜单。 ⑿ ResetMenu() 功能:取消对菜单的所有操作,恢复系统菜单。 用法:无参数。 ⒀ UncheckItem() 功能:移去菜单项左边的选中标志。 用法:UncheckItem(菜单项ID号)。 与执行程序有关的宏指令 ⑴ ExecFile() 功能:执行指定的程序或者指定文件相关联的程序。 用法:ExecFile(程序[,参数[,显示状态[,主题ID号]]])。 举例:ExecFile(win.ini)。 该指令用与“.ini”文件关联的程序打开文件“win.ini”。 ⑵ FileExist() 功能:检查指定的文件是否存在。 用法:FileExist(文件名)。 举例:IfThenElse(FileExist(myapp.exe), ExecFile(myapp), JumpId(install_my_app))。 该指令首先检查文件“myapp.exe”是否存在,若存在则执行,若不存在在跳转到主题ID号为“install_my_app”的主题页。 ⑶ ShellExecute() 功能:打开或者打印指定的文件。 用法:ShellExecute(文件名,选项参数[,显示状态[,操作[,路径[,主题ID号]]]]])。 ⑷ ShortCut() 功能:如果指定程序存在的话,运行它,并发送参数。 用法:ShortCut(窗口类名,程序[,参数[,参数[,主题ID号]]])。 举例:CopyTopic():ShortCut(notepad, notepad, 0x0302)。 第一条宏指令将当前主题复制到剪贴板中,第二条宏指令打开“记事本”,并把剪贴板中的内容粘贴到“记事本”中。  与标签操作相关的宏指令 ⑴ DeleteMark() 功能:删除一个文本标签。 用法:DeleteMark(标签文本)。 举例:IfThen("Managing memory", DeleteMark(Managing Memory))。 如果标签“Managing memory”存在,则删除该标签。 ⑵ GotoMark() 功能:跳转至指定的标签。 用法:GotoMark(标签文本)。 ⑶ IfThen() 如果指定的标签存在,则执行宏指令。 用法:IfThen("标签文本",宏指令)。 举例:见DeleteMark()。 ⑷ IfThenElse() 功能:如果指定标签存在,执行宏指令1,否则执行宏指令2。 用法:IfThenElse(("标签文本",宏指令1,宏指令2)。 举例:IfThenElse("Memory", Back(), Next())。 如果标签“Memory”存在,执行宏指令Back(),否则执行宏指令Next() ⑸ IsMark() 功能:检查指定的标签是否存在。 用法:IsMark(标签文本)。 ⑹ IsNotMark() 功能:检查指定的标签是否不存在。 用法:IsNotMark (标签文本)。 ⑺ Not() 功能,检查指定的标签,若存在返回0 (FALSE),否则返回非零值 (TRUE)。 用法:Not(标签文本)。 ⑻ SaveMark() 功能:创建一文本标签存储当前帮助窗口的信息。 用法:SaveMark(标签文本)。 与窗口操作有关的宏指令 ⑴ CloseSecondarys() 功能:关闭当前的二级窗口。 用法:无参数。 ⑵ CloseWindow() 功能:关闭一个二级窗口或者帮助系统主窗口。 用法:CloseWindow([窗口名称])。 ⑶ FocusWindow() 功能:使指定窗口获得焦点。 用法:FocusWindow(窗口名称)。 举例:FocusWindow(keys) 该指令将焦点移到名称为“keys”的二级窗口上。 ⑷ HelpOnTop() 功能:将帮助窗口置于前端显示。 用法:无参数。 ⑸ PositionWindow() 功能:设置指定窗口的位置,大小,显示状态。 用法:PositionWindow(窗口左上角横坐标, 窗口左上角纵坐标,窗口宽度,窗口高度,显示状态,窗口名称)。 举例:PositionWindow(100, 100, 500, 500, NORMAL, "Samples")。 该指令将二级窗口“Samples”长度和宽度都设置为500,显示在(100, 100),(600, 600)的位置上。 ⑹ SetPopupColor() 设置弹出式窗口的背景颜色。 用法:SetPopupColor(颜色的RGB值)。 举例:SetPopupColor(0, 0, 255)。 该宏指令将所有的弹出式窗口的背景设置为兰色。