Site icon Winhelponline

How to Open .hlp Files in Windows 10/11 Using 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/11. Installing one of the KB917607 installers on Windows 10 or 11 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 on Windows 10 or 11.

Get Winhlp32.exe (.hlp) functionality in Windows 10 or 11

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/11 have 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.

Step 1: Download KB917607 and extract the files manually

To get the .hlp viewing functionality in Windows 10/11, 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 or 11 computer.
    (In this illustration, I have used the Windows 8 x64 installer. Since I’m using Windows 64-bit, 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 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 to your desktop.
  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

    (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:
    (As I’m using Windows 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.

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 or 11 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.
  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

    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.

    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.

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
  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 and 11 already contain 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.
  2. Click on the Change button.
  3. Click More apps

  4. Click Look for another app on this PC.
  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.

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 July 26, 2022)

Exit mobile version