Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

CHM files that are downloaded are often tagged as potentially malicious by Windows, which effectively blocks all the html pages inside of it. There's an easy fix (just unblock the file after you download it), but I was wondering if there's a better way to provide unblocked chm files.

What if I were to download the chm file (as a byte stream) from our server inside the application, then write all the data to a file on the disk. Would it still be blocked?

Is there another/better way still?

Edit: Yes, downloading the file using a System.Net.WebClient does solve the problem. But, is there still a better way?

share|improve this question

migrated from Apr 11 '10 at 23:24

This question came from our site for professional and enthusiast programmers.

Right Click the .chm file -> Properties and and then click the "Unblock" button and you are ready to go!

share|improve this answer

Typical MSFT, first introduce such a crap as .chm is and later have to block it to make their ship with million holes safer. All ok, but why does it not show a proper error message with explaination what is going on when the user sees nothing in the chm file.

share|improve this answer

Technically what happens is that when IE downloads a file, it uses a little-known feature of Windows file system where you can have additional streams of data attached to a file. IE adds :Zone.Identifier stream where they write ini-style data in the form of:


The $id identifies trust zone for that file and it's set to URLZONE_INTRANET (

One way to fix it is to change the $id to URLZONE_LOCAL_MACHINE. Another is to simply delete this stream.

You can see how I did it in C++ for my Sumatra PDF viewer when we added CHM support: and

I'm not sure if you would consider it a better solution that downloading the file yourself.

share|improve this answer

This is a guess, but are you sure it's Windows that tags it? Could it not be internet explorer, in which case just use another browser?

share|improve this answer
no, it's still the same with Firefox - download a CHM with it and it's also tagged an "unsafe" and won't display until you manually unblock it... – marc_s Apr 11 '10 at 11:35
Same with Chrome, downloaded files get tagged. – David Rutten Apr 11 '10 at 12:05

You must log in to answer this question.