الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التشفير

مغلق
بدأه ابو زياد2003 في 25 فبراير 2005 · 31 رد · 2,433 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي برنامج واريد من الملف التنفيذي ان يعمل ثلاث مرات على الجهاز ومن ثم يطالب المستخدم بالرقم السري ارجوا الافادة عن ذلك مع وضع مثال اذا امكن

#2

يمكن ان تضع هذه القيمة فى الرجيسترى للويندوز ويقوم البرنامج بقرائتها عند بداية التشغيل ويذيدها واحد الى ان تصل الى الرقم المحدد يمنع البرنامج من التشغيل الى ان يسجل المستخدم

معلومة ممكن ان تكون تلك القيمة فى ملف خارجى او الرجيسترى اوى ما تريد بشرط انها تكون مخفية وشكرا

{ربى زدنى علما}

#3

ارجوا التوضيح اكثر وليكن بالصور

#4

الرجاء التوضيع

#5

هذا عملتة لك :

procedure TForm1.FormCreate(Sender: TObject);
var inifile:tinifile;
num:string;
intnum:integer;
begin
inifile:=tinifile.Create(ExtractFilePath(ParamStr(0)) +'exe.ini');
num:= inifile.ReadString('Main','Num','0');
intnum:=strtoint(num);
if intnum>3 then
Application.Terminate
else
inifile.WriteString('Main','Num',inttostr(intnum+1));
inifile.Free;
end;
#6

اذا ممكن مثال بسيط لو سمحت حيث ان الكود لم يزبط معاي

#7

السلام عليكم

المثال واضح يا ابو زياد .... فقط اضف inifiles الى اليوزس

#8

ياخوان الله يعطيكم العافية على الردود الممتازة على المشاركة ولكن انا خبرتي في الدلفي بسيطة جدا حيث ارجع الى الاخ عروة او الاشاوس الموجودين في المنتدى الرائع باستفسارات واجد الحل الفوري ولكن في هذه المشاركة التي تعتبر مهمة لكل مبرمج وسؤال يبحث عن اجابتة الكثير اريد شرحا مفصلا لكود الاخ عروة او مثال يبين ماهو الملف المراد ربط الكود به وماهي صيغة او اداة الربط

ولكم مني جزيل الشكر والامتنان على رحابة صدوركم.

#9

مرفق مثال للكود الذي وضعة عروة

وتحتاج يا ابوزياد ... ان تحاول اكثر من مرة وإلا لن تتقدم في البرمجة .... المثال سهل جدآ

والملف الذي تسئل عنة اسمة exe.ini وسوف تجدة في نفس المجلد بعد تشغيل البرنامج

والملف كل مرة تشغل البرنامج يضيف رقم الى الرقم الموجود حتى يصل الى العدد الذي تحددة

وبعدها اذا تلاحظ

if intnum>3 then

Application.Terminate

شفت كيف الشرط ؟؟؟ اذا القيمة المسجلة في ملف الـــ ini اكبر من العدد المحدد وهو 3

سوف يتم اقفال البرنامج ولن يعمل

وبنفس الفكرة يا ابو زياد تسطيع ان تخزن في الريجستري او في ملف نصي

ان اردت ان تحدد صلاحية البرنامج بعدد مرات التشغيل او التاريخ

وتحتاج الى ان تخفي الملف في اي مكان غير واضح

ومستقبلآ تحتاج الى اكثر من هذا ... تشفير وافكار اخرى

اتمنى لك التوفيق

EXAMPLE_3_TIMES.zip

#10

يعطيك الف عافية على المجهود والروح العالية

#11

كلام سليم لكن اذا اردت من الكود ان يغلق نموذج الدخول ويفتح نموذج كلة السر كيف سيكتب الكود

#12

أستبدل

if intnum>3 then

Application.Terminate

ب

if intnum>3 then

begin

form1.close;

form2.show;

end;

#13

انا اريد ان اخفي ال inifile بحيث لايمك معرفة مكانها ولتكن مثلا داخل مجلد الوندوز او السيستم كيف يكون شكل الكود حيث ان الكود السابق يقوم بانشاء الملف في نفس مجلد البرنامج وهذا واضح لاي شخص ارجوا التوضيح

#14

اخي الكريم التابع GetSystemDirectory يعيد مسار المجلد الذي يوجد فيه مجلد ال System 32

يمكنك استخدامه ليصبح المثال كاملا على الشكل التالي

procedure TForm1.FormCreate(Sender: TObject);
var
  inifile:tinifile;
  num:string;
  intnum:integer;
  CH:PAnsiChar;
begin
  new(CH);
  inifile:=tinifile.Create(GetSystemDirectory(CH,100) +'\exe.ini');
  num:= inifile.ReadString('Main','Num','0');
  intnum:=strtoint(num);
  if intnum>3 then
  begin
    form1.close;
    form2.show;
  end
  else
    inifile.WriteString('Main','Num',inttostr(intnum+1));
  inifile.Free;
end;

و ستجد ملف ال Ini داخل المجلدSystem 32 في مجلد الويندوز

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#15

بارك الله فيك هذا ماينقصني

#16

حدث خطا اثناء التنفيذ وهو

[Hint] Unit210.pas(73): Value assigned to 'blah' never used

[Warning] Unit210.pas(96): Return value of function 'RegChecker' might be undefined

[Error] Unit210.pas(173): Incompatible types: 'String' and 'Cardinal'

[Error] Unit210.pas(180): ';' not allowed before 'ELSE'

[Fatal Error] badanyh.dpr(82): Could not compile used unit 'Unit210.pas'

الرجاء التوضيح

#17

اظن ان هناك خطأ في الكود الذي كتبته قم بتحويل الكود الى ما يلي

procedure TForm1.FormCreate(Sender: TObject);
var
 inifile:tinifile;
 num:string;
 intnum:integer;
 CH:PAnsiChar;
begin
 new(CH);
GetSystemDirectory(CH,100);
 inifile:=tinifile.Create(CH +'\exe.ini');
 num:= inifile.ReadString('Main','Num','0');
 intnum:=strtoint(num);
 if intnum>3 then
 begin
   form1.close;
   form2.show;
 end
 else
   inifile.WriteString('Main','Num',inttostr(intnum+1));
 inifile.Free;
end;

اسف لم اجرب الكود بشكل جيد

ارجو ان تنحل المشكلة

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#18

لم ينجح الكود الرجاء تطبيقة على مثال الاخ عروة ثم تزويدنا بالنتائج وشكرا لكم

#19

اخي الكريم سوف اقوم بذلك الرجاء الانتظار قليلاً

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#20

اليك الملف المعدل يعمل تمت التجربة

EXAMPLE_3_TIMES.zip

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#21

يعطيني رسالة خطا مفادها

unable to write to c:\windo

#22

اسف يا اخي يبدو اني اعطيتك المجلد الخاطئ

جرب هذا

لقد تم تجربته إن شاء الله يعمل 100%

لقد تم اضافة كود عند ال Destroy للفورم ليتم انقاص عدد الفورم عند الخروج

EXAMPLE_3_TIMES.zip

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#23

مازال الامر مدوخني يظهر لي رسالة مفادها

[Hint] Unit210.pas(79): Value assigned to 'blah' never used

[Warning] Unit210.pas(102): Return value of function 'RegChecker' might be undefined

[Error] Unit210.pas(177): Incompatible types: 'String' and 'Integer'

[Error] Unit210.pas(178): Undeclared identifier: 'intnum'

[Error] Unit210.pas(178): Incompatible types: 'String' and 'Integer'

[Warning] Unit210.pas(179): Comparing signed and unsigned types - widened both operands

[Error] Unit210.pas(32): Unsatisfied forward or external declaration: 'TPasswordDlg.FormDestroy'

[Fatal Error] badanyh.dpr(82): Could not compile used unit 'Unit210.pas'

#24

يا اخي المثال الذي اعطيتك اياه يعمل بدون اي مشاكل

ارجوا ارفاق برنامجك ليتم تصليح الاخطاء التي تحدثت عنها

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#25

هذا هو الملف

الرجاء مشاهدة واصلاح الخطا

example.zip

هذا الموضوع مغلق.

مواضيع مشابهة