i want protect of my application .so i read serial number hard drive and compare. the application has good result in mode administrator user but it has bad result in mode standard user.
i wrote my application with c#.but for read serial number hard i used of a dll file that i wrote with delphi.
<pre>hDevice := CreateFile( '\\.\PhysicalDrive0:', GENERIC_READ or GENERIC_WRITE ,
FILE_SHARE_READ or FILE_SHARE_WRITE , nil, OPEN_EXISTING, 0, 0 );
this line of code in mode standard user return error.
What I have tried:
i try use of .net. so i using of WMI class(Win32_DiskDrive) but this method has result bad in mode standard user too.
private string getserial()
{
string SerialNumber = "";
string dataForSerial = string.Empty;
ManagementObjectSearcher Finder = new ManagementObjectSearcher("Select * from Win32_OperatingSystem");
string Name = "";
foreach (ManagementObject OS in Finder.Get()) Name = OS["Name"].ToString();
int ind = Name.IndexOf("Harddisk") + 8;
int HardIndex = Convert.ToInt16(Name.Substring(ind, 1));
Finder = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Index=" + HardIndex);
foreach (ManagementObject HardDisks in Finder.Get())
foreach (ManagementObject HardDisk in HardDisks.GetRelated("Win32_PhysicalMedia"))
SerialNumber = HardDisk["SerialNumber"].ToString();
return SerialNumber;
}
please help me. thank you