Thank you Jurassic Pork for the suggestion. I had considered it but I have reason why hard drive serial number is better. I might be wrong but I keep believing it.
I am a computer technician, I fix computers including the computers that use authentic Windows, Office and other software's licenses. One of the most troublesome problem is motherboard failure. Luckily so far what I found is, if I can find a compatible motherboard for the replacement, my clients can use their computer immediately after replacing the motherboard without need to reinstall any software.
But why I think software license should work based on the hard drive serial number? Because changing a hard drive means we need to reinstall all the software, that also means we need follow the software activation procedure or at least contact the software's author. Other possible reason why a hard drive serial number changed (not the same as recorded by the software) is, the hard drive is cloned. Cloning a hard drive should be in the grey area or prohibited because it can be easily abused for making licensed software to work on multiple computers.
I read into utilwmi source code, that's really is a good tool. Thank you Jurrasic Pork and Molly. I remember I read someone said it does not really read the hard drive serial number, it only reads the Windows generated ID for hard drive. Is it true?
I am glad I now have to codes for Windows and Linux, I can continue to write the program. Although I do not use utilwmi but I believe someone will find it useful.
@jamie
You can use this online tool to convert 7z to zip:
https://cloudconvert.com/7z-to-zip