0

誰かが以前にこの問題を抱えていて、できれば解決策を持っているかどうか疑問に思っています. 私が現在開発しているプログラムは MFC アプリケーションであり、.exe依存関係の問題により (インストール シールドなし) として配布されています。リソース内に埋め込まれた HTML Help File:.chm拡張子を含めています。ユーザーがヘルプ ファイルを要求すると、リソースからバイナリとして抽出され、ファイル システムにコピーされます。FindResourceLoadResource、およびLockResourceコールが発信されます。ファイルが抽出された後、次のように呼び出しますShellExecute

ShellExecute(m_hWnd, L"open", pathToFile, NULL, NULL, SW_SHOWDEFAULT);

HTML Help Viewer は問題なく起動します。ただし、特定のコンピューターでは、ファイル内のページを表示できません。「Web ページを表示できません」というメッセージが表示されます。

私は2つのことに気づきました:

  1. エラーは、「このファイルを実行しますか?」の後にのみ発生します。ダイアログは、ユーザーが最初にプログラムに入ろうとしたときに表示されます。

  2. HTML ヘルプ ファイルは、.exe が USB から実行されている (電子メールからダウンロードされていない) 場合に表示できます。

このようなことが起こった人はいますか?助言がありますか?

編集:

呼び出しで同じ結果が得られるShellExecute()ため、使用しています。HtmlHelp()

4

3 に答える 3

1

ShellExecute() を使用せず、HtmlHelp() API 呼び出しで「適切な」方法を使用するとどうなりますか?

htmlhelp ファイルにアクティブ コンテンツ (javascript など) がありますか?

.exe と同じディレクトリに抽出しない方がよいでしょう。たとえば、ユーザーがネットワーク ドライブからプログラムを実行すると、同じエラーが発生します (ネットワーク ドライバーから開かれた htmlhelp ファイルは「信頼されていない」とマークされます)。 ')。

于 2012-07-04T15:21:35.733 に答える
1

.chm ファイルのプロパティを (Windows エクスプローラーで) 確認すると、
「このファイルは別のコンピューターから取得されたものであり、このコンピューターを保護するためにブロックされている可能性があります」と表示されますか?
これは、[プロパティ] ウィンドウの [全般] タブの下部近くに表示されます。

その場合は、[ブロック解除] ボタンをクリックします。

詳細については 、 http://blog.crowe.co.nz/archive/2007/04/13/719.aspx を参照してください。

于 2012-07-04T08:17:31.417 に答える
0

解決策を見つけることができました。

2 つのセキュリティ更新プログラムがこの問題の原因となっています。リンクをたどると、問題の概要が説明されており、ほとんどがプログラマー以外のための解決策があります。問題を解決するために、サポート ページの例 2 とRegistry Reference APIを使用しました。

于 2012-07-05T19:55:28.547 に答える