Using HLP files in Windows 10

It is amazing how some vendors of libraries in the automation industry still require you to read help files in the old Microsoft hlp format.  Trying to open such a file results EDGE to show you the following screen.
Image Error opening Help in WIndows-based programs: "Feature not included" or "Help not supported"

If you think you can download and install the version for Windows 8.1. you are wrong. But do not throw away your downloaded MSU-File (for Windows 8.1 x64 the name is Windows8.1-KB917607-x64.msu).

Start your command prompt as Administrator!

imageFirst extract the content of the MSU File to another directory:

md ContentMSU
expand Windows8.1-KB917607-x64.msu /F:* .\ContentMSU

Now we can extract the contained CAB-File:

cd ContentMSU

md ContentCAB

expand /F:* .\ContentCAB

This will extract 279 files.  Depending on your culture and language settings we need to locate the right MUI-File. My language is german so I use “de-”. English folk use “en-“.

cd ContentCAB
dir amd64*de-*.
People who use the x86 variant need to run “dir x86*de-*.”
Navigate to the given path, in my case

cd amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_de-de_1ab8cd412c1028d0

Here we will find “winhlp32.exe.mui”. We need to replace %SystemRoot%\de-de\winhlp32.exe.mui with our new file:

takeown /f "%SystemRoot%\de-de\winhlp32.exe.mui"
icacls "%SystemRoot%\de-de\winhlp32.exe.mui" /grant "%UserName%":F
ren %SystemRoot%\de-de\winhlp32.exe.mui winhlp32.exe.mui.w10
copy winhlp32.exe.mui %SystemRoot%\de-de\winhlp32.exe.mui


takeown /f "%SystemRoot%\winhlp32.exe"
icacls "%SystemRoot%\winhlp32.exe" /grant "%UserName%":F
ren %SystemRoot%\winhlp32.exe winhlp32.exe.w10

cd ..

dir *.exe /s
Find the right path starting either with amd64 or x86 and navigate to it
cd "amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2"
copy winhlp32.exe %SystemRoot%\winhlp32.exe


Setting up Win10 on Raspberry PI II running Win10 with Hyper-V


Welcome to SpectoLogic. I am Andreas, blogging for SpectoLogic, an organization that is currently, hmm under construction :-). Let’s dive into the topic.

Since my Raspberry PI II had been laying around for a while and Microsoft released now a first preview of „Windows 10 IoT Core Insider Preview“ I decided to get my hands dirty. I first stumbled across an article from Mario Fraiss on how to set up your Raspberry Pi with Windows 10 IoT in a Hyper-V or physical environment.

Unfortunately I am running Windows 10 Preview under Hyper-V and the solution he provides for the Hyper-V variant involves messing up with drivers of your SD-Device. Something I did not want to do on my precious device.

So I came up with the plan to write the image to a virtual drive and then move this over to the SD-card with the Win32 Disk Imager.

I created a second disk for my Windows 10 machine in my Hyper-V environment (Fixed Disk 8 GB in size, also a VHDX-File). Then in Windows 10 I ran the dism-statement (see his blog) and applied the image to this virtual disk that looks physical to Windows 10 *gg*. Everything worked fine.

The challenge began when I tried to run Win32 Disk Imager. Because I was not able to choose the fixed disk. This is due the implementation of Win32 Disk Imager which only allows the selection of removable devices (probably to protect unexperienced users from overwriting their operating system).

So I downloaded the source code and tools which I installed promptly on Windows 10. The culprit lies in disk.cpp in the method

  • bool checkDriveType(char *name, ULONG *pid)

Simply replace following code:

if (GetDisksProperty(hDevice, pDevDesc, &deviceInfo) &&


        ((driveType == DRIVE_REMOVABLE) && (pDevDesc->BusType != BusTypeSata)) || 

        ((driveType == DRIVE_FIXED) && 

         ((pDevDesc->BusType == BusTypeUsb) || (pDevDesc->BusType == 0xC) || (pDevDesc->BusType == 0xD)) 




with this one

if(GetDisksProperty(hDevice, pDevDesc, &deviceInfo))

Then I recompiled the thing which was an adventure on it’s own as usually with QT. With my new version of Win32DiskImager No Protect (Use at YOUR OWN RISK) I  created an IMG-File (just select the first of the volumes, the tool internally uses the physical disk, so all the other partitions follow :-)).

Then I copied the 8GB IMG-File to my primary machine where I have my SD-Card attached and used the regular Win32 Disk Imager to apply the image to my SD-Card.

And you are ready to use it with your raspberry pi II. The reason why you see only one partition in Windows on your SD is that there are no drive letters assigned to the partitions.



Further recommended article: