CHMファイルを開くと、「Webページへの移動がキャンセルされました」というメッセージが表示されます。


84

.chmファイルを開こうとしています。

ソースをダウンロードして抽出し、ダブルクリックしてWaffle.chm[開く]をクリックしましたが、chmファイルのどの要素をクリックしても、次のメッセージが表示されます。

Navigation to the webpage was canceled.  
What you can try: 
Retype the address.  

ここに画像の説明を入力してください

何が起きてる?

回答:


168

概要

Microsoft Security Updates 896358および840315は、ネットワークドライブ(またはUNCパス)から開いたときにCHMファイルの内容の表示をブロックします。これは、ウイルス/マルウェアに対する攻撃ベクトルがコンピューターに感染するのを阻止するWindowsの試みであり、このchmファイルが使用する「InfoTech」プロトコルを介してデータを描画する.chmファイルをブロックしました。

問題のMicrosoftの要約:http//support.microsoft.com/kb/896054

ソリューション

  1. Windows Server 2008、Windows 7を使用している場合、Windowsはクイックフィックスを作成しました。 chmファイルを右クリックすると、[yourfile.chmプロパティ]ダイアログボックスが表示され、下部に[ブロック解除]というボタンが表示されます。[ブロックを解除]をクリックして[OK]を押し、chmファイルをもう一度開こうとすると正しく機能します。このオプションは、WindowsXP(SP3)より前の以前のバージョンのWindowsでは使用できません。

  2. chmファイルをネットワークドライブから移動して問題を解決します。ネットワークドライブを使用していることに気付いていない可能性があります。今すぐ再確認してください。.chmファイルを右クリックし、プロパティをクリックして、[場所]フィールドを確認します。次のような2つの円記号で始まる\\epicserver\blah\場合は、ネットワークドライブを使用しています。 したがって、修正するには、chmファイルをコピーして、C:\やE:などのローカルドライブに貼り付けます。 次に、chmファイルを再度開いてみてください。Windowsが異常終了することはありません。

  3. 最後の手段として、ネットワークドライブからファイルをコピー/移動できない場合。それが置かれている場所で開く必要があり、XP、Vista、MEなどのより古いバージョンのWindowsを使用している場合は、この.chmファイルに夢中にならないように手動でWindowsに指示する必要があります。 HHReg(HTMLヘルプ登録ユーティリティ)ユーティリティは、このタスクを自動化します。 基本的に、HHRegユーティリティをダウンロードし、.chmファイルをロードして、[OK]を押すと、Windowsにブロックしないように指示するために必要なレジストリキーが作成されます。詳細については、http//www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/をご覧ください。

Windows 8または10?-> WindowsXPにアップグレードします。


3
WinXPSP3またはWinVistaHome Premiumのどちらにも[ブロック解除]ボタンが表示されません
GetFree 2013

解決策1はWindows8にはありませんが、簡単なwin8の方法はありますか?
countunique 2013

2
私が参照したKB記事を考えると、提案されたソリューションはどれも4つの可能なソリューションと一致しません。「MaxAllowedZone」を「1」に設定すると、問題が修正されました
abstrask 2014

UNBLOCKは役に立ちません。ファイルを開いてローカルドライブにコピーし、(ネットワーク以外の)ローカルドライブから開く必要があります。
Erdinc Ay 2015

1
この問題は、インターネットからダウンロードしたchmにも影響します。ダウンロード直後にブロック解除ボタン/チェックボックスが表示されない場合があります。私の経験では、最初にローカルファイルシステムからchmを開き、破壊されていることを確認してから閉じてから、ファイルのプロパティに移動してロックを解除する必要があります。
フレデリック

43

ファイルを「ブロック解除」すると、問題が修正されます。スクリーンショット:

ここに画像の説明を入力してください


長い間このトリックを使わなかったので忘れてしまいました。もう一度思い出させてくれてありがとう。
kta 2014年

@kaziTanvirAhsanお役に立ててうれしいです。
colemik 2014年

ネットワークの場所からローカルの場所に移動するだけでは不十分です。このスクリーンショットのようにブロックを解除する必要があります。ありがとう@trismarck
leinad13

これはうまくいきました!ありがとう。私は自分で理解することはなかっただろう。
nilsB 2014

win-7でそのようなオプションを見つけることができませんでした。/ wファイルを開く代わりに、ローカルマシンにコピーすると、機能します。
tsenapathy 2015年

11

Win 8 x64:

別のフォルダに移動するか、フォルダの名前を変更するだけです(私の場合:私のフォルダは「c#」でした)。フォルダ名に記号を使用しないでください。文字で名前を付けます。

完了しました。


これも機能します。.chmファイルはこのフォルダーC:\ C#\ Samplesにあり、C:\ tempとブームに移動しました。できます!これをありがとう。:)
klaydze 2014年

優秀な!私はWindows10ユーザーです。ファイル名から「#」を削除し、古いc#chmヘルプファイルからフォルダー名を削除する必要がありました。
マルセロベルクヴァイラー

11

Eric Leschinskiの回答に加えて、これはスタックオーバーフローであるため、プログラムによる解決策は次のとおりです。

Windowsは、隠しファイルフォークを使用して、コンテンツを「ダウンロード済み」としてマークします。これらを切り捨てると、ファイルのブロックが解除されます。CHMに使用されるストリームの名前は「Zone.Identifier」です。ファイルを開くときに:streamnameを追加することで、ストリームにアクセスできます。(RTLがそれを台無しにした場合に備えて、最初はバックアップを保持してください!)

Delphiでは、次のようになります。

var f : file;
begin
 writeln('unblocking ',s);
 assignfile(f,'some.chm:Zone.Identifier');
 rewrite(f,1);
 truncate(f);
 closefile(f);
end;

フォークされていないファイルシステム(FAT32など)には隠しファイルがあると言われていますが、まだその根底に到達していません。

Ps DelphiのDeleteFile()もフォークを認識する必要があります。


非常に興味深い答えです。この隠しファイルと隠しファイルのフォークに関する詳細情報はどこにありますか?
ViRuSTriNiTy 2015

MSDN。たとえば、sbは、deletefileも機能するという発言をしました。私は、MSDNで関連する呼び出しを調べ、関数がどのように動作するかを正確に文書化しています。私がインターネットから入手した特定のZone.Identifierビット。また、MSIEのセキュリティ設定が高い場合はブロックされたdled EXEなどでも機能します
Marco van de Voort 2015

6

決定的な解決策は、InfoTechプロトコルがイントラネットゾーンで機能できるようにすることです。

レジストリに次の値を追加すると、問題が解決するはずです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001

詳細はこちら:http//support.microsoft.com/kb/896054


4

スタートに移動

タイプ regsvr32 hhctrl.ocx

次のような成功メッセージが表示されます。

「hhctrl.ocxのDllRegisterServerが成功しました」

ここで、CHMファイルをもう一度開いてみてください。


1
Voww ...それは私のために働きます...(ファイルを右クリックすると、プロパティに「ブロック解除」ボタンが表示されませんでした。これは正常に機能します)
tsenapathy 2015年

3

別の方法は、別のサードパーティソフトウェアを使用することです。 このリンクは、chmファイルを表示するためのより多くのサードパーティソフトウェアを示しています...

SumatraPDFを試してみましたが、問題なく動作します。


2

C ++ Builderを使用して、ソフトウェアでこれをプログラムで修正しました。

CHMヘルプファイルを割り当てる前にApplication->HelpFile = HelpFileName、「Zone.Identifier」ストリームが含まれているかどうかを確認し、含まれている場合は削除するだけです。

String ZIStream(HelpFileName + ":Zone.Identifier") ;

if (FileExists(ZIStream))
    { DeleteFile(ZIStream) ; }

1

明らかに異なるレベルの認証があります。私が読んだほとんどの記事では、MaxAllowedZoneを「1」に設定するように指示されています。これは、ローカルマシンゾーンとイントラネットゾーンは許可されますが、「4」は「すべて」のゾーンへのアクセスを許可することを意味します。

詳細については、次の記事を参照してください:https//support.microsoft.com/en-us/kb/892675

これが私のレジストリの外観です(ワイルドカードで機能するかどうかはわかりませんでしたが、私にとっては機能するようです):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000004

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\\<network_path_root>;\\\\<network_path_root>\*;\\ies-inc.local;http://www.*;http://*;https://www.*;https://*;"

補足として、奇妙なことに、これを別のPCで機能させるには「UrlAllowList」キーが必要でしたが、私のテストでは必要ありませんでした。おそらくまったく必要ありませんが、追加すると問題が解決しました。ユーザーが元のファイルなどを閉じていない可能性があります。したがって、単なる考慮事項です。最小限の試行とテストを行い、必要に応じて追加することをお勧めします。確認したら、必要に応じてデプロイできます。幸運を!

編集: PS機能した別の方法は、mklink / d(Windows 7以降のシンボリックリンク)を使用してローカルでネットワークへのパスをマッピングすることでしたが、ネットワークドライブ文字(Z:テスト用)のマッピングは機能しませんでした。ただ考えるための食べ物であり、ファイルの「ブロックを解除」する必要はありませんでした。また、受け入れられた「解決策」は私にとって問題を解決しませんでした。


問題ありません、誰かが恩恵を受けてよかったです。ベスト!
jacktrader 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.