The following routine generates serial numbers based on the current system (or local) time and date:
Code: Select all
Procedure.l GenerateSerialNumber(UseLocalTime.l = 0)
Protected.w lo, hi
Protected st.SYSTEMTIME
If UseLocalTime
GetLocalTime_(st)
Else
GetSystemTime_(st)
EndIf
lo = st\wMonth << 8 + st\wDay
lo + st\wSecond << 8 + st\wMilliseconds / 10
hi = st\wHour << 8 + st\wMinute
hi + st\wYear
ProcedureReturn lo << 16 + hi
EndProcedure
Debug "Generated serial number: $" + RSet(Hex(GenerateSerialNumber(#True), #PB_Long), 8, "0")
Code: Select all
Procedure.l GenerateSerialNumber()
Protected.w lo, hi
Protected st = Date()
lo = Month(st) << 8 + Day(st)
lo + Second(st) << 8
hi = Hour(st) << 8 + Minute(st)
hi + Year(st)
ProcedureReturn lo << 16 + hi
EndProcedure
Debug "Generated serial number: $" + RSet(Hex(GenerateSerialNumber(), #PB_Long), 8, "0")
Kind regards,
Francis