Previously, in Windows 10, I was able to open .hlp files. Now, after I have upgraded to Windows 10 Anniversary Edition, I can no longer open .hlp files.
Can someone help me?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityPreviously, in Windows 10, I was able to open .hlp files. Now, after I have upgraded to Windows 10 Anniversary Edition, I can no longer open .hlp files.
Can someone help me?
In order to open .hlp files in windows 10, you must have a patched version of winhelp32.exe from windows XP in your c:\Windows folder.
If you could open .hlp's before, you must have had this file in your system.
Performing an upgrade would overwrite the c:\Windows folder, thus removing winhelp32.exe from your system.
Follow the directions at this link to inject winhelp32.exe into the proper location in Windows 10.
http://appuals.com/how-to-read-hlp-files-in-windows-10/
I found a solution that does not involve downloading any third-party utilities. Credit goes to Andreas Pollak for the original solution.
This answer assumes you are running a 64-bit US English version of Windows 10. You'll need to adjust the commands if you are using a 32-bit version or if you are in a different locale.
First, download Windows8.1-KB917607-x64.msu from KB917607.
Then, in an administrative command prompt, switch to the folder containing the download and run the following commands. (You may find it easiest to run them one at a time.)
md ContentMSU
expand Windows8.1-KB917607-x64.msu /F:* .\ContentMSU
cd ContentMSU
md ContentCAB
expand Windows8.1-KB917607-x64.cab /F:* .\ContentCAB
cd ContentCAB
cd amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_en-us_c3a9a33a1aee3495
takeown /f %systemroot%\en-us\winhlp32.exe.mui
icacls %systemroot%\en-us\winhlp32.exe.mui /grant "%UserName%":F
ren %systemroot%\en-us\winhlp32.exe.mui winhlp32.exe.mui.w10
copy winhlp32.exe.mui %systemroot%\en-us\winhlp32.exe.mui
cd ..
cd amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2
takeown /f %systemroot%\winhlp32.exe
icacls %systemroot%\winhlp32.exe /grant "%UserName%":F
ren %SystemRoot%\winhlp32.exe winhlp32.exe.w10
copy winhlp32.exe %systemroot%\winhlp32.exe
After this you should be able to open .hlp files.
Find
tab was still missing; see my answer for the additional commands to bring that back as well.
Mar 9, 2019 at 20:36
%systemroot%\winhlp32.exe
could have been running. For this type of scenario I would suggest using a tool like procexp to check for open handles on those files.
Oct 4, 2019 at 23:34
@HolisticDeveloper's answer indeed worked to bring back winhlp32.exe
on Windows 10. However, the Find
tab was still missing so it wasn't possible yet to perform a full-text search of the help file. I've found that the following additional commands (also in an administrative command prompt) bring that back as well:
cd ..
cd amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_en-us_c3a9a33a1aee3495
copy ftsrch.dll.mui %systemroot%\syswow64\en-us\ftsrch.dll.mui
cd ..
cd amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2
copy ft*.dll %systemroot%\syswow64
Find
tab appears and when I click on it I get the Find Setup Wizard
dialog. However, once that completes I get the following error: "Unable to display the Find tab. (177)"
Oct 21, 2019 at 14:36
.hlp
file?
Jan 9, 2020 at 21:26
.FTS
/.GID
/.CNT
files in the %LOCALAPPDATA%\Help
directory. In earlier versions of Windows these were in the %SYSTEMROOT%\Help
directory, so you may see the same advice elsewhere about this using that older path.
winhlp32.exe
's behavior with Sysinternals Process Monitor.
Aug 21, 2022 at 15:07
...\ContentMSU\ContentCAB\x86_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_be363e6f3e19858c.manifest
and ...\ContentMSU\ContentCAB\amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2.manifest
respectively: Line 29: <file name="ftsrch.dll" destinationPath="$(runtime.system32)\" [...]
Line 39: <file name="winhlp32.exe" destinationPath="$(runtime.windows)\" [...]
But I didn't find a reference for the symbolic runtine.*
constants.