WinHelp が Windows Vista 以降のバージョンの Windows にインストールされているかどうかを検出する信頼できる方法はありますか? 可能であれば、特定のバージョンの Windows に固有ではない解決策が欲しいです。
この質問を他の掲示板に投稿したところ、Microsoft が文書化した WinHelp およびレジストリ エントリのインストール前後の Winhlp32.exe のサイズに関する回答が返ってきましたが、どれも正しくありませんでした。
WinHelp が Windows Vista 以降のバージョンの Windows にインストールされているかどうかを検出する信頼できる方法はありますか? 可能であれば、特定のバージョンの Windows に固有ではない解決策が欲しいです。
この質問を他の掲示板に投稿したところ、Microsoft が文書化した WinHelp およびレジストリ エントリのインストール前後の Winhlp32.exe のサイズに関する回答が返ってきましたが、どれも正しくありませんでした。
Microsoft からの WinHelp のダウンロードは、WinHelp プログラムを有効にするホットフィックス (.msu) のようです。これは、ホットフィックスが元のファイルからの単なる「デルタ」変更であるため、サイズ/レジストリ キーが変更されない理由を説明します。
これはホットフィックスであるため、OS にインストールされているホットフィックスを照会できるはずです。
次のコマンドは、インストールされているすべての修正プログラムを一覧表示する .htm ドキュメントを生成します。
wmic qfe list full /format:htable >C:\hotfixes.htm
生成された表には、インストールされている修正プログラムに対応するナレッジ ベースの記事が一覧表示されます。「917607」を検索できます。これは、WinHelp ホットフィックスをインストールした場合に存在するはずだからです。ユーティリティにさまざまなオプションを渡して、より適切な検索を実行できる場合があります。注 - wmic コマンドを実行するには管理者権限が必要です。
言いたくないのですが、WinHelp から先に進みます。何らかの理由で廃止されました。わずか数時間で .chm に移行できました。新しいヘルプ オーサリング ツールを使用するのは非常に簡単で、.chm などの新しい形式を使用すると、カスケード スタイル シートなどの利点が得られます。
このアプローチの問題を管理者に納得させようとする以外に、Windows レジストリを調べることができます。
基本的に、WinHelp が登録されている場合、次のレジストリ エントリが存在します。
HKEY_CLASSES_ROOT \ .hlp -> (デフォルト) = hlpfile
HKEY_CLASSES_ROOT \ hlpfile \ shell \ open \ command \ (デフォルト) には文字列「winhlp32.exe」が含まれます
これらの値が両方とも正しい場合、winhelp が利用可能であり、登録されています。ここから winhlp32.exe の場所を取得することもできます。