I can get serial number of HDD, But i dont know how to change serial number. Could you please help. Sure but it has nothing to do with Visual Basic as you can't change the eeprom (Electrically Erasable Programmable Read-Only Memory) chip the hard disk drive serial number is on in any way, shape or form with code of any kind. You have to physically access the eeprom with an eeprom programmer to do that. HDD information include serial number, firmware, model name, drivetype (fixed, removable, etc.) Background. There are many ways to get HDD information in Windows such as win API, WMI, third party SDK, etc. Wmi is very slow and doesn't work on mini windows XP platform. Third party SDK or libs are generally charged. Native coding with C/C++, Delphi.
Introduction
Making sure your software is used by legal buyers is a concern for programmers around the world. My professor once said that we shouldn’t give 100% of our code to the users because there are people out there that are smart enough to decompile our programs and find the various verification algorithms used. He suggested that we give users 99% of our software, but keep the remaining 1% to ourselves. This 1% is the verification algorithm to confirm only valid users can use the program; this is commonly known as “activation.”
Activation is good, but it means our software users will need to have Internet access and that means small programmers like us have to set up a server that can validate users. Of course, only big companies with big clients can afford to do this. For the rest of us, we have to think of other ways.
One method programmers have used since the DOS era was to bind their software to the Hard Drive Volume Serial Number. This is not a good choice, as later we all find out that every time we format the same hard drive, a new Volume Serial Number is generated.
Background
A better solution is to get the Hard Drive Serial Number given by the Manufacturer. This value won't change even if you format your Hard Drive. Of course, if people buy new hard drive, we have a problem. But at least we keep the regular hard-drive formatters happy!
Serial Number Lookup
The Code
First, let's create a class to store information about a hard drive:
Next, add a reference to your project. Scroll down to System.Management
under ComponentName
. This reference is not provided by default, so you need to add it.
Add a 'using System.Management;'
at the top of your source code. System.Management
allows us to access WMI objects. Put simply, WMI contains a lot information about your hardware.
Now there's a problem: the hard drive model is found in the Win32_DiskDrive
class and the serial number is found in the Win32_PhysicalMedia
class. Thus, we need to query twice and integrate the information into our HardDrive
class.
Let's first create an ArrayList
to store our HardDrive
objects: ArrayList hdCollection = new ArrayList();
. Next, we query the Win32_DiskDrive
class:
Now we need to extract the serial number from the Win32_PhysicalMedia
class:
Luckily, the WMI objects from Win32_DiskDrive
are in the same order as from Win32_PhysicalMedia
, so the simple code above works. Otherwise, we will have to match them using their unique DeviceID
. Start a thread in this article if you think Win32_DiskDrive
objects are not the same order as Win32_PhysicalMedia
objects returned.
We are done! Now we display our hard drive's information:
Conclusion
If a user has more than one hard drive, I suggest you display the available hard drives to the user. Ask him which hard drive he's not planning to upgrade soon, then use that hard drive serial number to generate a license key. This will prevent your user from nagging for a new license key in short time.
Get Volume Serial Number In Vb.net
If your user finally decides to upgrade hard drive, you may give this article's demo application to the user and ask him what the serial number is. Alternatively, you can create a much more user-friendly GUI one. :)
Serial Number Idm
Hope you find this useful.
Vb Net Get Set
|