- mahdi22dz كتب:
- الملف GetDiskSerial V4.0 يسمح لنا بمعرفة الرقم التسلسلي للقرص الصلب و هذا مهم جدا للاخوة المبرمجين الذين يستعملون VFP لانشاء نسخ محمية .
المشكل المطروح هو ان هذا الملف يحتاج الى سريال او مايسمى ب REGCODE .
نرجو من الاخوة المشاركين مساعدتنا في ايجاد ٌRegCode او serial لهذه المكتبة.
مشكورين
استعمل هذا الكود في تطبيقاتك :LOCAL lnparms, lcroot, lcvolumename, lnvolumesize, lnserialno,;
lncomplen, lnsysflags, lcsysname, lnnamesize
STORE 0 TO lnserialno, lncomplen, lnsysflags
STORE SPACE(260) TO lcvolname, lcsysname
STORE LEN(lcvolname) TO lnvolsize, lnnamesize
* Declare windows API
DECLARE SHORT GetVolumeInformation IN Win32API;
STRING @lpRootPathName, STRING @lpVolumeNameBuffer,;
INTEGER nVolumeNameSize, INTEGER @lpVolumeSerialNumber,;
INTEGER @lpMaximumComponentLength, INTEGER @lpFileSystemFlags,;
STRING @lpFileSystemNameBuffer, INTEGER nFileSystemNameSize
lcroot = "C:"
lcolddec = SET('DECIMALS')
SET DECIMALS TO 0
*-- Get the volume information and return the number or false
IF getvolumeinformation(@lcroot, @lcvolname, lnvolsize, @lnserialno,;
@lncomplen, @lnsysflags, @lcsysname, lnnamesize) # 0
DO CASE
CASE lnserialno < 0 AND lnserialno > -4294967296
lnserialno = VAL(TRANSFORM(-lnserialno, '@O'))
CASE lnserialno > 0 AND lnserialno < 4294967296
lnserialno = VAL(TRANSFORM(lnserialno, '@O'))
ENDCASE
SET DECIMALS TO lcolddec
*!* THIS.nserialnumber = lnserialno
lcMess = alltrim(str(lnserialno))
RETURN .T.
ELSE
SET DECIMALS TO lcolddec
*!* THIS.nserialnumber =
lcMess = [555556789]
RETURN .F.
ENDIF