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 the 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)

    Update: I’ve later found that both Winhlp32.exe (in x64 and x86 folders) files in Windows8-RT-KB917607-x64.cab are exactly the same. It’s a 32-bit executable only — SHA1 hash for both files is 3aadfdea4bc00a6fa950a123f377de19775ec1fe.

  2. Use 7-Zip or any other archiver to open Windows8-RT-KB917607-x64.msu.
  3. Extract the file Windows8-RT-KB917607-x64.cab 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\Windows8-RT-KB917607-x64.cab" -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 four files to your desktop:
    D:\test\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.2.9200.16420_none_820c960392fdf7ed\winhlp32.exe
    D:\test\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.2.9200.16420_none_820c960392fdf7ed\ftsrch.dll
    
    D:\test\amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.2.9200.16420_en-us_2b615f4ab77535c0\winhlp32.exe.mui
    D:\test\amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.2.9200.16420_en-us_2b615f4ab77535c0\ftsrch.dll.mui
    (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. Similarly, search for ftsrch.dll and ftsrch.dll.mui (en-us version) and copy them.

    restore winhlp32 .hlp viewer in windows 10

Now, you have the four files Winhlp32.exe, Winhlp32.exe.mui, ftsrch.dll, and ftsrch.dll.mui on your desktop. Follow one of the methods under Step 2 below.


Step 2: Copy the files to the Windows folder

Method 1: Replace the default Winhlp32.exe with the legacy copy

This method replaces the factory default copy of Winhlp32.exe with the legacy (Windows 8) version of the file.

An advantage of this method is that the contextual help (F1) works perfectly in your old applications. The disadvantage is that the procedure needs to be carried out after installing every Windows 10 Feature Update. The procedure needs to be repeated also when Windows File Protection replaces the file with the original copy automatically, or when the user runs the Sfc.exe command to fix corrupted files.

You have the files Winhlp32.exe, Winhlp32.exe.mui, ftsrch.dll, and ftsrch.dll.mui on your desktop. Follow these steps to copy them to the Windows folder.



  1. Run Command Prompt under TrustedInstaller rights. Let’s say you’re using the AdvancedRun tool as specified in the linked article.
    trustedinstaller advanced run nirsoft
  2. In the Command Prompt window, run these commands:
    cd /d C:\Windows\
    ren Winhlp32.exe  Winhlp32_old.exe
    copy  C:\users\Ramesh\desktop\Winhlp32.exe
    copy  C:\users\Ramesh\desktop\ftsrch.dll
    cd  C:\Windows\en-us
    ren Winhlp32.exe.mui  Winhlp32_old.exe.mui
    copy  C:\users\Ramesh\desktop\Winhlp32.exe.mui
    copy  C:\users\Ramesh\desktop\ftsrch.dll.mui
    exit

    winhlp32 replace trustedinstaller permissions

    Note: Replace the desktop folder path accordingly in the command-line. Don’t use environment variables like %userprofile% because the Command Prompt window is currently running under TrustedInstaller privileges.

    That’s it. We’ve replaced the default Winhlp32.exe with the Windows 8 version of the file.

    winhlp32 replace - f1 contextual hlp

    You should be able to open .hlp files by double-clicking on them or by pressing F1 (contextual help) from the respective application.

    If the user gives focus to a button, object, or a field for which custom help has been defined in that application, and then presses F1, the custom Help for that object is displayed. If no help is defined for that object, then it opens the most relevant page in the .hlp file, so that the user doesn’t have to read the entire help documentation. This is called context-sensitive help.

    The full-text search feature (“Find” tab in the “Find Topics” dialog) will work as well.
    winhlp32 full text search wizard


Method 2: Without replacing the default Winhlp32.exe file

This method doesn’t replace the original Winhlp32.exe. Instead, we copy the older version of the file in a different name and then associate .hlp files with it.

The advantage of this method is that you don’t need to re-do the procedure after installing every Windows 10 Feature Update. A disadvantage is that you can’t use the F1 key in your applications to open the contextual help. It’s because your application won’t be able to find the renamed copy of Winhlp32.exe. Double-clicking on .hlp files will open the file, though.

  1. Rename them to Winhlp32_legacy.exe & Winhlp32_legacy.exe.mui respectively.
  2. Move the file Winhlp32_legacy.exe to C:\Windows
    restore winhlp32 .hlp viewer in windows 10
  3. 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.

Search feature in .hlp files

  1. If you need the full-text search feature (“Find” tab) in .hlp files, copy these two files as well:
    • ftsrch.dll (copy it to C:\Windows)
    • ftsrch.dll.mui (copy it to C:\Windows\en-us)
    ftsrch.dll is the Microsoft Full-Text Search module. If the “Find” tab is missing when you open a .hlp file, it means that ftsrch.dll is missing in the computer.

    If you receive the “Unable to display the Find tab. (177)” error, you can fix the issue by deleting .FTS, .GID, and .CNT files in the %LOCALAPPDATA%\Help and/or %SYSTEMROOT%\Help directory. The .GID and .CNT files may be found in the same directory as the .hlp file.

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 on 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

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.

(Last updated on May 28, 2021 – Windows 10 v21H1 build 10.0.19043.985)


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. :)

Ramesh Srinivasan is passionate about Microsoft technologies and he has been a consecutive ten-time recipient of the Microsoft Most Valuable Professional award in the Windows Shell/Desktop Experience category, from 2003 to 2012. He loves to troubleshoot and write about Windows. Ramesh founded Winhelponline.com in 2005.

20 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?

    Reply
    • @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 Windows8.1-KB917607-x64.cab 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

    Reply
  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.

    Reply
    • @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 https://support.microsoft.com/en-ca/help/917607/feature-not-included-help-not-supported-error-opening-help-windows

    Reply
  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)
    and
    amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_en-us_c3a9a33a1aee3495 (Winhlp32.exe.mui)
    Cheers
    James

    Reply
  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.

    Reply
  7. When I attempted to extract Windows8-RT-KB917607-x64.cab to the desktop I got the following error:
    Can not open output file : Access is denied. : C:\Users\Public\Desktop\Windows8.1-KB917607-x86.cab

    Reply
  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?

    Reply
  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?

    Reply
  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

    Reply
  11. Excellent article.. but a problem. I am running Windows 10 on a 64 bit machine. I did the conversion, and was able to open the Paradox(version 11) Database help files by clicking on them, but, when I try to select the Help files from the main program (Help could not be started) and I am taken too https://support.microsoft.com/en-us/topic/error-opening-help-in-windows-based-programs-feature-not-included-or-help-not-supported-3c841463-d67c-6062-0ee7-1a149da3973b. Now I followed the instructions about adding the key WinHelp, and setting the AllowProgrammaticMacros DWord to 1.. I attempted this in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft , and I also tried HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft, adding the new key WinHelp…. at my wits end.. What do I have to do to get Paradox Programming Language Help files to show up from the main menu again? THANKS IN ADVANCE!!

    Reply
  12. This is a great article that I have come across quiet some time. I usually don’t leave comment but here I am compelled to do so. Followed instruction step by step and help file worked.
    Awesome Ramesh!! Kudos to you for writing this blog!!!

    One question I have for developers it is good they can change by doing this, assume we have thousands of users of desktop-client application which is using .hlp file. How do you recommend changing those! It is not feasible to ask user(non-technical) to do this. Do We have any alternate solution that you can think of!

    Reply
  13. This works for *some* .hlp, but not ALL .hlp files. I have an older PC game from 1996 or so, Free Enterprise, and it will not open the .hlp file at all, no matter what I do. In Paint Shop Pro 6 .hlp file opens with the macro error, but I can view those .hlp files.

    For Free Enterprise, I just get the usual, cannot display this help file, try opening the file again etc. and I even pointed to C:\windows\winhlp32_legacy.exe. I even double clicked winhlp32_legacy.exe, and tried to open the .hlp file that way, it still said, cannot display this help file, try opening the file again etc.

    Reply
    • @Tom: You may try using the Windows Vista or 7 version of winhlp32.exe. Or, if you can send me the 1996 .hlp file, I’ll try to repro the issue.

Leave a Comment