Windows Vistaの標準ではWindowsヘルプは表示できないということで、HTMLヘルプなどに移行する必要があります。
何度かとまどった経験があるので自分でも忘れないよう、簡単な移行手順をまとめてみました。
1.
現在のWindowsヘルプ。
これをHTMLヘルプに移行してみる。
2.
まずは「HTML Help Workshop」を起動。
[スタート]→[すべてのプログラム]→[HTML Help Workshop]→[HTML ヘルプワークショップ]メニューを選択。
3.
「HTML Help Workshop」の画面から、[File]→[New]メニューを選択。
「New」ダイアログが表示されるので「Project」を選択し、新規プロジェクトを作成する。
4.
WinHelpからの変換するため、「New Project」ダイアログで「Convert WinHelp project」をチェック。
5.
「New Project — Source and Destination Project Files」で、既存のWinHelpプロジェクトファイル、新規作成するHtmlHelpプロジェクトファイル名を指定する。
7.
すると、とりあえずHtmlHelp用のプロジェクトが作成される。
8.
試しに[File]→[Compile]メニューでコンパイルしてみる。
9.
「Create a compiled file」で[Compile]ボタンをクリック。
10.
出来上がったHtmlHelpファイル(*.chm)を見るために、[View]→[Compiled File]メニューを選択。
11.
「View compiled file」でHtmlHelpファイル(*.chm)を選択し[View]ボタンをクリック。
12.
すると、とりあえずHtmlHelpが表示される。
見ての通り文字化けしてたり、目次が無かったり散々なヘルプが作成される。
13.
まず、文字化けから直してみる。
プロジェクトを作成したフォルダ配下に”html”フォルダが作成されている。
14.
“html”フォルダ配下のHTMLをテキストエディタ(メモ帳でもOK)で開いてみる。
METAタグで指定されているcharset属性の値が”Windows-1252″になっているので、
これを”Shift_JIS”に修正する。
変更前:
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=Windows-1252“>
変更後:
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=Shift_JIS“>
ちなみに、直接影響は無いと思われるが<title>タグ内の文字(日本語部分)も化けているので、ついでに直しておこう。
<TITLE>?????</TITLE>
htmlフォルダ配下全てのHTMLを変換(テキストエディタの全置換を使うと便利)する。
15.
再びHtml Help Workshopに戻り、コンパイル&表示してみる(上記、8.~11.)。
すると、文字化けは解消されている(筈)。
16.
今度は目次を付けてみる。
WinHelpで作成していた目次構成を真似してHtmlHelpの目次を作成してみる。
WinHelpと同じ目次構成で作成してみる。
17.
再びHtml Help Workshopに戻り、[Contents]タブを選択すると「Table of Contents Not Specified」ダイアログが表示される。
ここで「Create a new contents file」を選択し[OK]ボタンをクリック。
すると、ファイル名を聞いてくるので適当に名前を付けて保存する。
(ファイル名はデフォルトの”Table of Contents.hhc”のままでもOK)
18.
まず、「はじめに」の部分を作成。
[Insert a heading]ボタン(フォルダアイコン)をクリック。
19.
「Table of Contents Entry」ダイアログが表示されるので、[Entry title:]テキストボックスに”はじめに”と入力し[OK]ボタンクリック。
20.
すると”はじめに”フォルダが追加される。
次に[Insert a page]ボタンをクリック。
21.
“Do you want to insert this entry at the beginning of the table of contents?”と聞かれてくるので挿入しないよう[いいえ]を選択。
22.
「Table of Eontents Entry」ダイアログの[Entry title:]に、二番目の項目”MemMeterについて”を入力し、[Add]ボタンをクリック。
23.
「Path or URL」で対象のHTMLを選択し[OK]をクリック。
ここでは”MemMeterについて”を選択。
25.
すると「Contents」に”MemMeterについて”が追加される。
26.
試しに、この時点でコンパイルし出来上がりを見てみる。
上記で説明したように、[File]→[Compile]メニューでコンパイル。
[View]→[Compiled File]メニューで作成したHTMLヘルプを表示。
すると、無事「目次」タブが追加されている。
27.
後は、応用を利かせて全ての目次を作成する。
GUIでの操作が面倒&HTMLの知識がある人ならContents作成で保存したファイル(”Table of Contents.hhc”など)を直接編集する方法もあり。
中身は↓こんな感じになっているので<UL>タグ内をコピペしながら編集しよう。
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML//EN”> <HTML> <HEAD> <meta name=”GENERATOR” content=”Microsoft® HTML Help Workshop 4.1″> <!– Sitemap 1.0 –> </HEAD><BODY> <OBJECT type=”text/site properties”> <param name=”ImageType” value=”Folder”> </OBJECT> <UL> <LI> <OBJECT type=”text/sitemap”> <param name=”Name” value=”はじめに”> </OBJECT> <UL> <LI> <OBJECT type=”text/sitemap”> <param name=”Name” value=”MemMeterについて”> <param name=”Local” value=”html\memm15f8.htm”> </OBJECT> </UL> </UL> </BODY> </HTML>
できあがり。
28.
おまけに、目次のアイコンの変更方法。
「HTML Help Workshop」(メイン画面)で[Contents]タブを選択した状態で、左側にある鉛筆マークのボタン[Edit Selection]をクリック。
「Table of Contents Entry」ダイアログが表示されるので[Advanced]タブを選択。
下側にある[Image Index:]を変更するとアイコンが切り替わる。
後はリコンパイルすればOK。
29.
できあがり。
30.
これでWindowsヘルプからHTMLヘルプへの移行は完了。
31.
あとは呼び出すプログラム側の変更するのみ。
HTMLヘルプ呼出し方法の例をまとめてみた。
VC++:
#include <htmlhelp.h> HtmlHelp( NULL, ”MemMeter.chm::/html/memm2abc.htm”, HH_DISPLAY_TOPIC, 0);
C#:
using System.Windows.Forms; Help.ShowHelp(this, “MemMeter.chm”, @”html\memm2abc.htm”);
VB6:
Global Const HH_DISPLAY_TOPIC = &H0 Global Const HH_CLOSE_ALL = &H12 Declare Function HTMLHelp Lib “hhctrl.ocx” Alias _ “HtmlHelpA” (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal _ wCommand As Long, ByVal dwData As Long) As Long HTMLHelp Me.hwnd, “MemMeter.chm::/html/memm2abc.htm”, HH_DISPLAY_TOPIC, 0&
これで呼び出しもOK。