Get Hard Drive Serial Number Delphi

Get Hard Drive Serial Number Delphi 9,2/10 7655 reviews

Hi, I want to get manufacturer's harddisk serial number (note: not' volume serial number'), because with formating it doesn't change. I have searched the newsgroup archives at: codenewsfast.com and groups.google.com; but to no avail. I am not looking for the use of GetVolumeInformation for getting the 'hard disk serial number', because what this function actually gets is the volume serial number, not the manufacturer's hard disk serial number. The volume serial no. Is assigned and changed during the formatting of the partition. A proper/working code (in Delphi 5) will be highly appreciated. The code should work with Windows 95/98/Me/NT4/2000/XP/7 for both x32 and x64 bit platforms.

TGetDiskSerial VCL v4.20 - Easy to read the unique serial number of hard disk in your Delphi projects. Support Delphi5-XE3. » TGetDiskSerial VCL - Get Hard Disk Serial Number - Retrieve Hard Disk Serial - Get Disk Serial - Hard Drive Serial Number - Delphi 5 - RAD 2010.

Many thanks in advance! Best regards, John.

On Wed, 27 Jul 2011 04:58:47 -0700, John Warren wrote: >Hi, > >I want to get manufacturer's harddisk serial number (note: not' volume serial number'), because with formating it doesn't change. > >I have searched the newsgroup archives at: codenewsfast.com and groups.google.com; but to no avail. > >I am not looking for the use of GetVolumeInformation for getting the 'hard disk serial number', because what this function actually gets is the volume serial number, not the manufacturer's hard disk serial number. The volume serial no. Is assigned and changed during the formatting of the partition. > >A proper/working code (in Delphi 5) will be highly appreciated.

The code should work with Windows 95/98/Me/NT4/2000/XP/7 for both x32 and x64 bit platforms. Many thanks in advance! > >Best regards, >John Hi John, Quick Search on Google gets (among others) the following 2 sites of interest: 1)2)Hope that helps Smurf.

I am on this project with my talented director who is also a great musician @RajeshMSelva! Vikram kamal tamil movie songs.

Get Hard Drive Serial Number Delphi

Dear all, I'm trying to read serial no of the hard disk as a unique id of the machine. I tried the code as follows: class function TDeviceUtils.GetDeviceId: string; const IDENTIFY_BUFFER_SIZE = 512; type TIDERegs = packed record bFeaturesReg: BYTE; // Used for specifying SMART 'commands'. BSectorCountReg: BYTE; // IDE sector count register bSectorNumberReg: BYTE; // IDE sector number register bCylLowReg: BYTE; // IDE low order cylinder value bCylHighReg: BYTE; // IDE high order cylinder value bDriveHeadReg: BYTE; // IDE drive/head register bCommandReg: BYTE; // Actual IDE command. BReserved: BYTE; // reserved for future use. Must be zero. End; TSendCmdInParams = packed record // Buffer size in bytes cBufferSize: LongInt; // Structure with drive register values.

IrDriveRegs: TIDERegs; // Physical drive number to send command to (0,1,2,3). BDriveNumber: BYTE; bReserved: array [0. 2] of BYTE; dwReserved: array [0. 3] of DWORD; bBuffer: array [0.

0] of BYTE; // Input buffer. End; TIdSector = packed record wGenConfig: Word; wNumCyls: Word; wReserved: Word; wNumHeads: Word; wBytesPerTrack: Word; wBytesPerSector: Word; wSectorsPerTrack: Word; wVendorUnique: array [0.

2] of Word; sSerialNumber: array [0. 19] of CHAR; wBufferType: Word; wBufferSize: Word; wECCSize: Word; sFirmwareRev: array [0. 7] of CHAR; sModelNumber: array [0. 39] of CHAR; wMoreVendorUnique: Word; wDoubleWordIO: Word; wCapabilities: Word; wReserved1: Word; wPIOTiming: Word; wDMATiming: Word; wBS: Word; wNumCurrentCyls: Word; wNumCurrentHeads: Word; wNumCurrentSectorsPerTrack: Word; ulCurrentSectorCapacity: DWORD; wMultSectorStuff: Word; ulTotalAddressableSectors: DWORD; wSingleWordDMA: Word; wMultiWordDMA: Word; bReserved: array [0. 127] of BYTE; end; PIdSector = ^TIdSector; TDriverStatus = packed record bDriverError: BYTE; bIDEStatus: BYTE; bReserved: array [0. 1] of BYTE; dwReserved: array [0.

1] of DWORD; end; TSendCmdOutParams = packed record // bBuffer的大小 cBufferSize: DWORD; DriverStatus: TDriverStatus; bBuffer: array [0. 0] of BYTE; end; var hDevice: Thandle; cbBytesReturned: DWORD; SCIP: TSendCmdInParams; aIdOutCmd: array [0. (SizeOf(TSendCmdOutParams) + IDENTIFY_BUFFER_SIZE - 1) - 1] of BYTE; IdOutCmd: TSendCmdOutParams absolute aIdOutCmd; procedure ChangeByteOrder(var Data; Size: Integer); var ptr: pchar; i: Integer; c: CHAR; begin ptr:= @Data; for i:= 0 to (Size shr 1) - 1 do begin c:= ptr^; ptr^:= (ptr + 1)^; (ptr + 1)^:= c; Inc(ptr, 2); end; end; begin Result:= '; // '. PhysicalDrive0 means the first drive, use '.