18-01-2009, 11:56 AM
يمكن لبرنامجك أخي التأكد من أمور مثل الرقم التسلسلي للقرص الصلب أو البيوس أو عنوان MAC لكارت الشبكة ...وغيرها...أي أنك تقوم بتخزين هذه الأرقام في برنامجك أو في أي مكان آخر ، وعند فتح البرنامج يقوم بمطابقة الأرقام -رقم القرص لصلب مثلا- بالأرقام المخزنة....
وإليك أخي هذه الدالة التي تقوم بقراءة الرقم التسلسلي للقرص الصلب :
غير أن الحل الأمثل برأيي هو عمل مولد مفاتيح (ولو بسيط) لبرنامجك.
وإليك أخي هذه الدالة التي تقوم بقراءة الرقم التسلسلي للقرص الصلب :
كود :
procedure TForm1.Button1Click(Sender: TObject);
var
VolName : Array[0..Max_Path]Of Char;
FileSysName : Array[0..Max_Path]Of Char;
VolSerial : DWord;
FileMaxLen : DWord;
FileFlags : DWord;
Ser:string[30];
begin
GetVolumeInformation('C:\',VolName,Max_Path,@VolSerial,
FileMaxLen, FileFlags,FileSysName,Max_Path);
Ser:=intToStr(VolSerial);
Edit1.Text:=ser;
end;
end.غير أن الحل الأمثل برأيي هو عمل مولد مفاتيح (ولو بسيط) لبرنامجك.
:: رب يسر ولا تعسر رب سهل وتمم بالخير ::

