****************** ** zGetHDDSerial ** ** returns the last 6 digits of the HDD serial number. DECLARE SHORT GetVolumeInformation IN Win32API; STRING @lpRootPathName,; STRING @lpVolumeNameBuffer,; INTEGER nVolumeNameSize,; INTEGER @lpVolumeSerialNumber,; INTEGER @lpMaximumComponentLength,; INTEGER @lpFileSystemFlags,; STRING @lpFileSystemNameBuffer,; INTEGER nFileSystemNameSize lproot = 'C:\' lpVolName = SPACE(260) lpVolSize = LEN(lpVolname) lpVolSerial = 0 lpMaxComp = 0 lpFlags = 0 lpSysName = lpVolName GetVolumeInformation(@lproot, @lpVolName,; lpVolSize, @lpVolSerial, @lpMaxComp,; @lpFlags, @lpSysName, lpVolSize) LOCAL lcHDD lcHDD=ALLTRIM(STR(lpVolSerial)) *!* LOCAL lcCurDrive, lcHDD, lcValue1 *!* lcCurDrive=SUBSTR(SYS(5),1,1) && return current hard drive letter 'c' *!* ** return the hard drive serial number *!* ofs=create('scripting.filesystemobject') *!* lcHDD=ALLTRIM(STR(abs(ofs.drives(lcCurDrive).serialnumber))) ** get the last 6 digits or pad with 'x' if less than 6. IF LEN(lcHDD)<6 lcHDD=PADL(lcHDD,6,'X') ELSE lcHDD=SUBSTR(lcHDD,(LEN(lcHDD)-5),6) ENDIF return lcHDDThanks for your help, it's greatly appreciated.