`

chm解析

    博客分类:
  • ruby
 
阅读更多
 CHM文件是微软公司开发的新一代基于HTML的帮助文件格式,它一问世就以其易用性和新颖的界面赢得了广大编程一族的喜爱,目前大多数软件都用它来制作应用程序的帮助文件。

  关于Html Help Workshop的用法已有文章介绍,在这里笔者着重讲述在实际编程中如何调用CHM文件,从而建立起应用程序的帮助系统,本文以Visual Basic 6.0为语言平台。


  声明HtmlHelp API函数

  由于HtmlHelp API 并没有集成在Windows操作系统的API中,因此不能直接调用HtmlHelp.lib 库函数,但HtmlHelp API的功能位于hhctrl.ocx中,这样可以通过调用hhctrl.lib库函数来显示帮助文件,其声明格式如下:

  Declare Function Htmlhelp Lib "hhctrl.ocx" Alias "HtmlHelpA"

  (ByVal hwndCaller As Long,

  ByVal pszFile As String,

  ByVal uCommand As Long,

  ByVal dwData As Any) As Long

  具体参数含义如下:

   hwndCaller 调用该函数的窗体句柄

  pszFile 帮助文件的名称和位置

  uCommand 帮助类型

  dwData 与uCommand相匹配的附加参数

  定义uCommand 常数

   Const HH_DISPLAY_TOPIC = &H0

  Const HH_DISPLAY_INDEX=&H2

  Const HH_HELP_CONTEXT = &HF

  Const HH_DISPLAY_SEARCH= &H3

  Const HH_DISPLAY_TEXT_POPUP= &HE

  接着指定CHM文件的名称和位置:

  App.HelpFile=App.Path & "Sample.CHM"

  程序调用

   调用缺省主题帮助
http://jchmweb.googlecode.com/svn/trunk/jchmweb

   Call HtmlHelp(hwnd,

  App.HelpFile,

  HH_DISPLAY_TOPIC,

  ByVal "Default.htm")

  此调用方式用于没有上下文ID号的情形,dwData可指定一个在CHM文件内的缺省htm文件,也可取NULL,这是HtmlHelp API最基本的一种用法。

  调用关键字帮助

  Call HtmlHelp(hwnd,

   App.HelpFile,

   HH_DISPLAY_INDEX,

   (DWORD)"关键字"))

  此调用方式中dwData取索引文件(.hhk)中存在的关键字。

  调用上下文敏感帮助

  Call HtmlHelp(hwnd,

   App.HelpFile,

   HH_HELP_CONTEXT, 1000)

  此调用方式用于含有映射信息的CHM文件, dwData取映射表中存在的ID号。

  调用全文搜索帮助

   Dim Query As HH_FTS_QUERY

   Call HtmlHelp(hwnd,

   App.HelpFile,

   HH_DISPLAY_SEARCH,

   (DWORD)& Query)

  DwData参数指定一个指向HH_FTS_QUERY结构的指针。

  调用弹出式帮助

   Dim Popup As HH_POPUP

   Call HtmlHelp(hwnd,

   NULL,

   HH_DISPLAY_TEXT_POPUP,

   (DWORD)&Popup)

  PszFile通常取NULL,也可以指定一个CHM和一个在该CHM文件中的TEXT文件,DwData用于指定一个指向HH_POPUP结构的指针。

  指定显示窗体形式

  由于显示帮助文件的缺省窗体是在编译该CHM文件时的窗体,因此为了更好地控制帮助文件的显示,在制作CHM文件时,可以自定义一个窗体形式。在程序中可以通过两种方法来调用自定义窗体。

  1.当uCommand 为HH_DISPLAY_TOPIC或HH_HELP_CONTEXT时,在pszFile参数中用“>”符号,其后跟上窗体名称即可。如pszFile取:

  App.HelpFile & "> MainWin"

  2.用HtmlHelp函数直接指定:

  Dim WinType As HH_WINTYPE

  Call HtmlHelp(hwnd,

   App.HelpFile &" > MainWin",

   HH_SET_WIN_TYPE,

   (DWORD) &WinType)

  必须声明的是,以上叙述中使用的“Sample.CHM”、“Default.htm”、“关键字”、“1000”和“MainWin”等均属举例,应用中需要根据自己的具体情况来设置这些参数的实际值。

  至此,应用程序的帮助系统就建立起来了,当然,要把帮助系统做得更完美一点,还有更多的工作要做。
  • CHM.rar (30.2 KB)
  • 下载次数: 19
分享到:
评论

相关推荐

    JAVA CHM解析

    Java CHM解析主要涉及到的是如何在Java环境中处理和解析Windows平台下的 Compiled Help Module (CHM) 文件。CHM文件是微软提供的一种用于存储帮助文档的格式,它将多个HTML文件、图片和其他资源压缩在一个单一的文件...

    java解析chm

    Java解析CHM(Compiled Help Manual)文件是一种技术,主要用于处理微软Windows系统中常见的帮助文档格式。CHM文件是由HTML页面和其他资源压缩而成的,通常包含索引、目录和搜索功能。`chm4j`是一个Java库,专门设计...

    java 解析 chm 文件

    Java解析CHM文件是将Microsoft的 Compiled HTML Help (CHM) 文件转换成HTML网页的过程。CHM文件是一种常见的帮助文档格式,它包含了多个HTML页面、图像和其他资源,并使用了一种特殊的压缩方法存储。在Java中处理CHM...

    CHM文件解析、浏览器

    `ChmView.exe`可能是一个专门用于查看和分析CHM文件的程序,可以帮助用户解决上述提到的CHM文件浏览问题,比如检查内部结构、解压文件或修复错误。这样的工具可以提供更深入的故障排查能力,帮助用户了解和修复CHM...

    chm转txt的软件

    2. **CHM解析**:转换软件首先需要解析CHM文件的结构,找到HTML内容。这包括读取主索引文件(HHINDEX.CHM)和目录树文件(HH_CAT.INF),以获取章节信息。 3. **内容提取**:软件会逐个读取CHM中的HTML块,提取文本...

    chmlib-0.40 chm格式解析工具

    **chmlib-0.40:CHM格式解析工具详解** **一、CHM格式简介** CHM(Compiled Help Manual)是微软开发的一种电子文档格式,主要用于存储HTML帮助文件,常见于Windows操作系统中的各种软件帮助文档。它将HTML、图片和...

    CHM帮助文档解析易语言源码

    这个项目是关于使用易语言解析CHM帮助文档的源代码,对于学习易语言编程以及对CHM文件结构感兴趣的开发者非常有帮助。 首先,我们需要理解CHM文件的内部结构。CHM文件基于HTMLHelp技术,主要由以下部分组成: 1. *...

    易语言-CHM帮助文档解析易语言

    通过以上步骤,易语言开发者可以构建自己的CHM解析和展示程序,从而提高工作效率,尤其是在没有官方API的情况下,能够更好地理解和利用CHM帮助文档。这个过程涉及到文件系统操作、内存管理、网络编程等多个方面,对...

    CHM文件解析浏览程序

    在"CHM文件解析浏览程序"中,描述提到了"无第三方类库",这意味着这个源码实现完全独立,不依赖于外部的库或API,而是通过内置的解析机制来处理CHM文件。这可能涉及到对CHM文件结构的深入理解和自定义编码。 CHM...

    设计模式逐个解析.chm,C#代码

    《设计模式逐个解析》是一本深入探讨C#编程中设计模式的专业书籍,其.chm格式的电子版包含了丰富的代码示例和详细解释。设计模式是软件工程中的重要概念,它代表了在特定上下文中解决常见问题的最佳实践,是经验丰富...

    免费好用的chm EasyCHM

    2. hha.dll和Itcc.dll是动态链接库文件,它们是Windows系统中的组件,可能用于支持CHM文件的生成和解析。 3. EasyCHM.exe是EasyCHM软件的执行文件,用户可以通过运行此文件来启动和使用软件。 4. help.htm可能是一个...

    C++ API chm C++ API chm C++ API chm

    CHM文件是一种压缩的电子书格式,用于存储和检索技术文档,如编程指南、函数库和类库的说明。在Windows操作系统中,用户可以通过内置的CHM阅读器来查看这些文件。 C++ API涵盖了C++标准库中的各种功能,包括容器...

    chm转换成txt格式

    这个压缩包中的“chm格式转成txt格式工具”应该就是这样一个实用程序,它可以解析CHM文件并将其内容导出为TXT格式。以下是转换过程可能涉及的一些关键步骤和技术: 1. **解析CHM结构**:CHM文件的内部结构类似于...

    Jsoup源码以及chm文件

    而“chm文件”通常是一种Windows平台下的帮助文档格式,它可能包含了Jsoup的官方文档或教程,方便用户查阅和学习。 Jsoup的核心功能主要包括以下几点: 1. 解析HTML:Jsoup能够将HTML字符串转换为一个DOM...

    chm转word工具

    1. **解析CHM文件**:首先,工具需要读取CHM文件的索引,理解文件的内部结构,这通常涉及到解压缩CHM文件,提取包含HTML内容的部分。 2. **内容提取**:接着,工具会逐个读取HTML页面,提取文本、图片、链接等元素...

    chm转换html工具软件

    这个过程通常包括解压CHM文件、解析其内部结构、提取HTML内容以及重建文件链接等步骤。 转换过程中,软件会保留原始CHM文件的目录结构,使得转换后的HTML文件能保持原有的组织逻辑。此外,它还会处理图片、样式表和...

    chm格式分析_做CHM阅读器用的到

    "chm格式分析_做CHM阅读器用的到"这个主题涉及到CHM格式的解析和CHM阅读器的开发,下面我们将深入探讨这个领域的关键知识点。 1. **CHM文件结构** - CHM文件基于HTMLHelp系统,内部包含索引、目录和HTML内容。 - ...

    chm反编译软件,很好用

    它是一款专门用来反编译CHM电子书源文件的工具软件,可以迅速地释放包括在CHM电子书里面的全部源文件(包括网页、文本、图片、CHM、ZIP、EXE等全部源文件),并且完美地恢复源文件的全部目录结构及文件名,以便帮助...

    chm2word格式转换工具

    这可能是由于CHM的压缩方式导致的,或者chm2word在解析图像时存在技术局限。 转换过程通常包括以下步骤: 1. **选择源文件**:用户需要选择要转换的CHM文件,这是转换的基础。 2. **设置输出格式**:chm2word支持...

Global site tag (gtag.js) - Google Analytics