跳轉到內容

Windows 程式設計/編譯 HTML 幫助

來自華夏公益教科書

在大多數程式中,選單將有一個名為“幫助”的彈出項。在幫助選單中,通常有一個“內容”或“索引”或“主題”選項。單擊這些選項時,會彈出一個幫助框。

這些幫助框被稱為“編譯 HTML 幫助模組”,或 .chm 檔案。這些幫助檔案可以使用微軟 HTML 幫助工作室從 HTML 原始碼編譯,微軟提供免費下載。

製作 HTML 幫助模組

[編輯 | 編輯原始碼]

HTML 幫助模組可以從包含 HTML、DHTML、CSS 和 JavaScript 混合的原始檔編譯。這與用於編寫網頁的 HTML 完全相同,因此擁有網頁經驗的人在建立 HTML 幫助模組方面將佔有優勢。HTML、CSS 和 JavaScript 是非常適合圖形應用程式的語言,但功能遠不如 C 或 VB。幫助工作室包含許多不同的選項,例如您是否要包含一個索引視窗,是否要允許搜尋和索引,是否要有一個目錄,等等。可以選擇一個預設頁面,在首次載入幫助模組時顯示。幫助模組中的頁面可以使用超連結連結到模組中的其他頁面、計算機上的其他檔案,甚至網際網路上的資源。

HTML 幫助 API

[編輯 | 編輯原始碼]

HTML 幫助工作室附帶一個頭檔案("htmlhelp.h")和一個庫檔案("htmlhelp.lib"),這些檔案必須在您的專案中使用,才能從您的程式中呼叫 HTML 幫助模組。必須在 Htmlhelp.h 檔案之前包含 Windows.h,否則編譯器會輸出錯誤。Htmlhelp.h 定義了一個名為 HtmlHelp 的單一函式,可以在您的程式內部呼叫。

HWND WINAPI HtmlHelp(HWND hwndCaller, LPCTSTR pszFile, UINT uCommand, WORD_PTR dwData);

此函式返回一個指向 html 幫助視窗的控制代碼,如果您希望它這樣做,您的程式可以在相對較高的級別上與該視窗互動。第一個引數是呼叫(父)視窗的控制代碼。如果設定此引數,幫助視窗將成為您視窗的子視窗,並且可以與它通訊。如果將此設定為 NULL,幫助視窗將基本上是獨立的。“pszFile”引數是目標幫助模組的檔名。“uCommand”可能包含許多不同的命令,其中一些非常複雜和涉及。最簡單(也是最常見)的是 HH_DISPLAY_TOPIC 命令,它按正常方式顯示幫助,並允許使用者檢視和互動幫助模組。“dwData”可以可選地包含其他資料,具體取決於所使用的命令。

如果我們想開啟一個位於 c:/help/myhelp.chm 的幫助模組,可以使用以下命令

hwndHelp = HtmlHelp(hwndParent, 
                    "C:\help\myhelp.chm", 
                    HH_DISPLAY_TOPIC, 
                    NULL);

現在,假設我們要在幫助模組中開啟一個特定頁面。假設我們的模組包含一個名為“example.htm”的頁面。我們可以透過稍微更改目標字串來直接開啟該頁面

hwndHelp = HtmlHelp(hwndParent, 
                    "C:\help\myhelp.chm::example.htm", 
                    HH_DISPLAY_TOPIC, 
                    NULL);

而且,如果我們為幫助檢視器建立了多個視窗,我們可以強制將頁面顯示在幫助檢視器的特定視窗中。假設我們在 html 幫助模組中建立了一個名為“SideWin”的視窗。我們可以使用以下語法將我們的頁面(example.htm)載入到 SideWin 中

hwndHelp = HtmlHelp(hwndParent, 
                    "C:\help\myhelp.chm||example.chm>SideWin", 
                    HH_DISPLAY_TOPIC, 
                    NULL);

有關更多高階選項以及對其他命令的討論,您應該檢視 MSDN 上的相關材料。

建立 HTML 幫助模組

[編輯 | 編輯原始碼]

HTML 幫助工作室頂部有 5 個按鈕,從左到右依次是

新建
建立一個新的 HTML 檔案進行編輯
開啟
開啟一個現有的 HTML 檔案進行編輯
編譯
將當前專案編譯成一個幫助模組
檢視
檢視當前幫助專案
幫助
開啟一個幫助檢視器視窗

如果單擊“新建”按鈕(或者從選單欄中選擇“檔案>新建”),系統會提示您選擇要建立的新型別。首先,您應該建立一個新專案。

選擇建立新專案將開啟一個嚮導,它將引導您完成建立新專案的步驟。

HTML 幫助檔案

[編輯 | 編輯原始碼]

HTML 幫助專案中可能包含 3 種不同的檔案型別:HTML 原始檔(.HTM)、目錄檔案(.HHC)和索引檔案(.HHK)。建立新專案後,您可以編輯並向專案新增所有這些型別的檔案。每個 HTML 幫助模組只能包含一個 .HHC 檔案和一個 .HHK 檔案。

專案側邊欄

[編輯 | 編輯原始碼]

啟動新專案並完成嚮導後,您將在幫助工作室視窗的左側看到一個側邊欄,它允許您編輯專案選項、目錄和索引。

反編譯

[編輯 | 編輯原始碼]

在 Windows 上,可以使用以下命令將 CHM 檔案提取為純 HTML

hh.exe -decompile extracted filename.chm 

這將解壓縮嵌入在 filename.chm 中的所有檔案到資料夾 extracted

您也可以使用 HTML 幫助工作室反編譯 CHM 檔案。檔案 -> 反編譯... [需要引用]

7-Zip 將 .chm 檔案開啟為存檔,允許訪問所有內容。

在 Windows 上,選擇最頂部的主題,右鍵單擊並選擇列印。在彈出對話方塊中,選擇“列印此標題及其所有子主題”,單擊確定。在選擇印表機之前,在 %HOMEPATH%\Local Settings\Temp 中查詢名為 ~hh*.htm 的檔案。這是連線的 HTML。影像引用將在列印時引用 .chm 檔案。

在使用 apt 作為打包工具的 Linux 系統上,可以使用 extract_chmLib 將 CHM 檔案提取為純 HTML(第一個命令適用於基於 Debian 的作業系統)

 $ sudo apt-get install libchm-bin
 $ extract_chmLib tero.chm tero/
華夏公益教科書