How to View .hlp Files in Windows 10 with WinHlp32.exe

A long time back, most of the software used to ship with .hlp (WinHelp help format) help files. Since Windows Vista, the legacy .hlp format has been deprecated. To view 32-bit Help files with the .hlp file extension in Windows Vista (and higher — through Windows 8.1), you will need to download and install WinHlp32.exe (KB917607 package) from the Microsoft Download Center.

However, this update isn’t available for Windows 10. Installing one of the KB917607 installers on Windows 10 would cause the following error:

Windows Update Standalone Installer

The update is not applicable to your computer.

This article tells you how to restore missing WinHelp (.hlp) viewer in Windows 10.

How to get Winhlp32.exe (.hlp) functionality in Windows 10?

There are situations where you need the .hlp functionality even today. For example, I needed to refer to WinDiff.hlp manual to know the command-line switches supported. Note that WinDiff is still being used today by many users. By default, Windows 10 has the file Winhlp32.exe in the Windows directory, but it’s only a 12 KB dummy or placeholder file that doesn’t do anything when run.

Here’s how to restore the .hlp file viewing capability in Windows 10.

Step 1: Download KB917607 and extract the files manually

To get the .hlp viewing functionality in Windows 10, you need to extract the required files from the KB917607 package.

  1. Download the KB917607 update (meant for Windows 8 or 8.1) from the Microsoft Download Center to your Windows 10 computer.
    (In this illustration, I have used the Windows 8 x64 version. Since I’m using Windows 10 x64 version, I downloaded the x64 installer file Windows8-RT-KB917607-x64.msu)
  2. Use 7-Zip or any other archiver to open Windows8-RT-KB917607-x64.msu.
  3. Extract the file to your desktop.
    restore winhlp32 .hlp viewer in windows 10
  4. Open a Command Prompt window, and type these two commands one by one and press Enter after each command:
    md d:\test
    expand "%USERPROFILE%\Desktop\" -F:* d:\test

    restore winhlp32 .hlp viewer in windows 10

    (In the above example, I’m creating a temporary folder on the D:\ drive, and then I’m extracting the contents of the .cab file. If the drive-letter is different in your system, change it accordingly.)
  5. Now, copy these two files to your desktop:

    (As I’m using Windows 10 x64 version, I’ve copied the x64 version of Winhlp32.exe denoted by the letters “amd64” in the folder name. The .mui file (Multilingual User Interface) are resource files that allow you to change your Windows interface to display different languages.

    Because I’m using the English version of Windows, I picked up the “en-US” version of the .mui file from the D:\Test folder. In case you have an Italian language version of Windows, you’d need the en-IT version of winhlp32.exe.mui.)

    Tip: Alternatively, you can search for Winhlp32.exe in the D:\Test folder and easily pick the two files from search results.

    restore winhlp32 .hlp viewer in windows 10

  6. Now, you have the two files Winhlp32.exe & Winhlp32.exe.mui on your desktop. Rename them to Winhlp32_legacy.exe & Winhlp32_legacy.exe.mui respectively.
  7. Move the file Winhlp32_legacy.exe to C:\Windows
    restore winhlp32 .hlp viewer in windows 10
  8. Move Winhlp32_legacy.exe.mui to C:\windows\en-US
    (en-US is for English language OS. Likewise, for Italian language OS, you’d copy the .mui file to C:\windows\en-IT, and so forth. To view the complete list of Locale IDs or LCIDs, visit the LCID (Locale ID) | Microsoft Docs webpage)

    Note:  As Windows 10 already contains the Winhlp32.exe and Winhlp32.exe.mui placeholder files, we don’t want to delete or rename the factory default versions to replace them with the legacy copies.

    Some users tend to take ownership of the original Winhlp32.exe file and delete it before replacing it with the legacy copy. Doing so might cause the Windows File Protection to restore the originals at a later stage automatically.

    Here is a sample System File Checker (Sfc.exe) CBS log showing that the Windows File Protection has restored the factory-default versions of the files from the component store (WinSxS)

    Info CSI 00005d95 [SR] Repairing corrupted file [l:20 ml:21]"\??\C:\WINDOWS\en-US"\[l:16]"winhlp32.exe.mui" from store
    Info CSI 00005dd4 [SR] Repairing corrupted file [l:14 ml:15]"\??\C:\WINDOWS"\[l:12]"winhlp32.exe" from store

    So, we need to avoid deleting or renaming the factory default version of Winhlp32.exe and the corresponding .mui file. That’s why we changed the file names by suffixing _legacy, in Step 6 above.

Step 2: Associate .hlp files with legacy Winhlp32 (legacy version)

The next step is to associate WinHelp .hlp files with Winhlp32_legacy.exe. Follow these steps:

  1. Locate a .hlp file in your computer, right-click on the file and choose Properties.
    restore winhlp32 .hlp viewer in windows 10
  2. Click on the Change button.
  3. Click More apps
    restore winhlp32 .hlp viewer in windows 10
  4. Click Look for another app on this PC.
    restore winhlp32 .hlp viewer in windows 10
  5. Locate C:\Windows\Winhlp32_legacy.exe in the browse dialog and select it.

You’ve now associated .hlp files with the legacy (Windows 8) version of Winhlp32.exe. Double-click a .hlp file to test.

restore winhlp32 .hlp viewer in windows 10
WinDiff WinHelp .hlp file


restore winhlp32 .hlp viewer in windows 10
InCtrl5 WinHelp .hlp file

Why was WinHlp32 discontinued by Microsoft?

Around March 2006, the Microsoft Help team announced that WinHelp would be deprecated (phased out). Ted Dworkin (Director of Windows Support Experience) said this:

“WinHelp does not meet the code standards established for Vista. These standards include security, reliability, and performance. WinHelp is architected in such a way that we would have to rewrite it from the ground up to meet the Vista code standards. And that approach doesn’t make sense given that we have two other Help systems in Vista.”

Microsoft recommends that software developers discontinue using the Windows Help application, and transition their Help experience to an alternative Help file format, such as CHM, HTML, or XML.

One small request: If you liked this post, please share this?

One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
  • Pin it!
  • Share it to your favorite blog + Facebook, Reddit
  • Tweet it!
So thank you so much for your support, my reader. It won't take more than 10 seconds of your time. The share buttons are right below. :)

About the author

Ramesh Srinivasan founded back in 2005. He is passionate about Microsoft technologies and he has been a Microsoft Most Valuable Professional (MVP) for 10 consecutive years from 2003 to 2012.

16 thoughts on “How to View .hlp Files in Windows 10 with WinHlp32.exe”

  1. This article provides the answer on how to access .HLP files. But it seems to provide that help using Windows 8.0 and 8.1. You use the .HLP file reader from these OS’s. You mention this process works with Windows 10. You say you are using Windows 10 64bit. The .HLP file program you use in this example appears to be WINHLP32.EXE. Isn’t this the 32bit version you’re using. I’m concerned about true compatibility. You mention Windows 10 can change back to the default version from the new legacy files. What happens to the other commands, extracted and installed files if Windows 10 returns to the default? Will the default version try to read the changed files and create errors? Can I easily start the steps over at some point in the instructions without doing all of the steps? It seems by interpreting your statements, Windows 10 looks for the default files when loading. What makes it find the legacy files instead? The command lines you enter? Most importantly, How Do I Remove The Changes If Something Goes Wrong?

    • @Mark:
      1) Winhlp32.exe is 32-bit, even if you get the x64 installer from Microsoft.
      2) We’re not replacing the factory default Winhlp32.exe (in Windows 10) with the legacy copies. So, Windows won’t revert to the default settings unless you manually do so.
      3) Associating .hlp files with the legacy version of Winhlp32.exe (Winhlp32_legacy.exe) is all you need to do. Windows won’t use the default Winhlp32.exe (stub) in that case.
      4) To remove the changes, all you need to do is delete Winhlp32_legacy.exe and the corresponding .mui file. Then, change the .hlp file association to the default Winhlp32.exe (stub)

  2. Blimey what a struggle. Thanks very much for doing this
    The directory has changed.
    It’s now note 8.1

    I still get errors In paintshoppro (admittedly dated 2001) pressing help just gets ! Failed to launch help (but going to the program directory and clicking on psp.hlp works)… But even then having opened it I see
    ! There was a problem running the macro even thogh the topic displays
    and pressing the Topic button at top doesn’t do anything
    Perhaps I should just learn a new program!

    Thanks again

  3. Yep, didn’t work for me either. Trying to use Autosketch 8’s Help menu file (or any other) returned a “(9009)” error from my system.

    • @Charles: Can you upload that particular .hlp file. Let me see if I can repro the error. This could be due to a wrong .mui localization file.

  4. I started doing this since I was getting the help-error in for Zoombrowser.exe. Now, I can open individual help files from the Zoombrowser EX directory. BUT, when I’m running Zoombrowser, I get the help-error when I try to access help and on start-up of the program and when program opens a new window. It appears that at least some features of Zoombrowser work Ok. It’s just I get these errors all the time taking me to the infamous microsoft page

  5. This works perfectly. Thank you so much!
    Just to be aware that the folder names extracted from the cab have changed in Windows8.1-KB917607-x64.
    The files are now in: amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2 (winhlp32.exe)
    amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_en-us_c3a9a33a1aee3495 (Winhlp32.exe.mui)

  6. Thanks so much for these wonderfully clear and detailed instructions. They worked perfectly to enable the display of my .hlp files, but that turned out not to be all that I needed: the program that finds and calls the appropriate .hlp files is still dead, apparently because it continues to rely on WinHlp32. I hope that you can tell me what to do next.

    I’m running WordPerfect 11, under Windows 10. The problem is with its Help facility, and more specifically with the “Help Topics” and “Macro Commands” items in its dropdown menu. When I select either of those options, I get an error message that says, “Call to Help failed”. A friend has theorized that perhaps “WinHlp32 needs to be running in memory as a service, and WordPerfect is trying to call it with a program-to-program call of some kind.”

    Thanks for any thoughts that you have.

  7. When I attempted to extract to the desktop I got the following error:
    Can not open output file : Access is denied. : C:\Users\Public\Desktop\

  8. It looks as if you ordinarily answer questions that are posted here, but you haven’t answered mine, from a couple of weeks ago. Did you miss it?

  9. Ramesh, Thanks for great instructions. While doing this, all went well thru the expanding of the files but when I looked for the two files to copy to the desktop and rename, they do not exist in the expanded files. I tried looking for the Winhlp32.exe but could not find them that way either. Am I doing something wrong?

  10. Works for me. I used a fix from Trish Tech previously but each Windows 10 update wiped it out. The *legacy.* is so simple it’s brilliant. Updates still mess with my 1037 fix though.

    I run Lotus Approach databases. Approach is quite simply the best PC database manager there ever was. Still is. Beats any SQL system too if you don’t need to share on line.

    March 21


Leave a Comment