![]() |
|
كيفية جعل البرنامج دمؤقتا؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيفية جعل البرنامج دمؤقتا؟ (/showthread.php?tid=11200) |
كيفية جعل البرنامج دمؤقتا؟ - momowahrane - 09-01-2021 السلام عليكم و رحمة الله تعالى و بركاته قمت بعمل برنامج على دالفي7 و اكملته و الحمد لله أريد طريقة لقفل البرنامج بعد شهر من يوم بداية عمله؟ جزاكم الله خيرا مع السلامة RE: كيفية جعل البرنامج دمؤقتا؟ - Delphi4Us - 09-01-2021 و عليكم السلام و رحمة الله تعالى و بركاته بامكانك استخدام مسجل النظام لتخزين قيمة فيه او تاريخ وكلما اشتغل البرنامج قراء قيمتها اذا كان التاريخ اكبر من تاريخ اليوم بي 30 يوم توقف او زيادة واحد كل يوم حتى تصير القيمة 30 يتوقف مع ملاحظة ان تاريخ الجهاز قد لا يكون مضبوطا ويتغير لهذا اللجؤ الى زيادة رقم كل يوم قد يكون افضل او استخدم تاريخ من الانترنت هنا كود قراءة واضافة وتعديل وحذف لقيمة بالمسجل كود : procedure TForm3.InsertToRegBtnClick(Sender: TObject);
var
reg : TRegistry;
openResult : Boolean;
today : TDateTime;
begin
reg := TRegistry.Create(KEY_READ);
reg.RootKey := HKEY_LOCAL_MACHINE;
if (not reg.KeyExists('Software\MyCompanyName\MyApplication\')) then
begin
MessageDlg('Key not found! Created now.',
mtInformation, mbOKCancel, 0);
end;
reg.Access := KEY_WRITE;
openResult := reg.OpenKey('Software\MyCompanyName\MyApplication\',True);
if not openResult = True then
begin
MessageDlg('Unable to create key! Exiting.',
mtError, mbOKCancel, 0);
Exit();
end;
{ Checking if the values exist and inserting when neccesary }
if not reg.KeyExists('Creation\ Date') then
begin
today := Now;
reg.WriteDateTime('Creation\ Date', today);
end;
if not reg.KeyExists('Licenced\ To') then
begin
reg.WriteString('Licenced\ To', 'MySurname\ MyFirstName');
end;
if not reg.KeyExists('App\ Location') then
begin
reg.WriteExpandString('App\ Location',
'%PROGRAMFILES%\MyCompanyName\MyApplication\');
end;
if not reg.KeyExists('Projects\ Location') then
begin
reg.WriteExpandString('Projects\ Location',
'%USERPROFILE%\MyApplication\Projects\');
end;
reg.CloseKey();
reg.Free;
end;
procedure TForm3.DeleteFromRegBtnClick(Sender: TObject);
var
reg : TRegistry;
begin
reg := TRegistry.Create(KEY_WRITE);
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.DeleteKey('Software\MyCompanyName\MyApplication');
reg.DeleteKey('Software\MyCompanyName');
reg.CloseKey();
reg.Free;
end;RE: كيفية جعل البرنامج دمؤقتا؟ - ALG2009 - 09-01-2021 و عليكم السلام ولكن ألا تعد هذه العملية غير آمنه وسهلة لكسر البرنامج وجعله يعمل للأبد؟ ما هي أصعب طريقة يمكن إستعمالها للحماية؟ RE: كيفية جعل البرنامج دمؤقتا؟ - momowahrane - 09-01-2021 (09-01-2021, 09:21 AM)momowahrane كتب : السلام عليكم و رحمة الله تعالى و بركاته بارك الله فيك اخي العزيز سأجرب الكود على بركة الله RE: كيفية جعل البرنامج دمؤقتا؟ - damoufid - 05-04-2021 السلام عليكم الطريقة السالفة الذكر عملية جدا لكن يمكن كسرها وذلك بمسح المفتاح شريطة أن يكون الإنسان داهية وبالذهاب مباشر إلى Regedit أو سجل المفاتيح والبحث المفتاح والتأكد منه إن كان هذا البرنامج مؤقتا Temporaire أو تجاري فعند عملية مسح المفتاح أو السجل يمكن إعادة تنشيط البرنامج والله أعلم . البخل حرام هذا مجرد برنامج جربه علك تجد ظالتك فيه var Form1: TForm1; comp:integer; implementation uses Unit2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Registre: TRegistry; begin ///////ShowMessage('il n''éxiste pas des entrées dans cette Période');Exit; Registre:=TRegistry.Create; Registre.RootKey:=HKEY_CURRENT_USER; Registre.OpenKey('Win7sys',False); if not registre.ValueExists('compt') then begin Registre.OpenKey('\Win7sys',true); comp:=1; registre.WriteInteger('compt',comp); end else begin comp:=registre.ReadInteger('compt'); if comp <10 then begin inc(comp); registre.WriteInteger('compt',comp); end else begin winexec('c:\Temp.exe',sw_showdefault); ////ArabMessagedlg('ÝÊÑÉ ÊÌÑÈÉ ÇáÈÑäÇãÌ ÇäÊåÊ Úáíßã ÇáÅÊÕÇá ÈÕÇÍÈ ÇáÈÑäÇãÌ ',mtinformation,[mbok],0); application.Terminate; end; end; registre.CloseKey; registre.Free; end; المثال الذي أرسلته تحدده فتر عشرة أيام if comp <10 then begin عليك بتغيير عدد الأيــام وشكرا |