WindowsヘルプからHTMLヘルプへの移行

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。



Tagged:

Leave a comment

メールアドレスが公開されることはありません。

CAPTCHA


*