delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما سبب هذه الرسالة?
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
وضعت بريمج صغير يراقب تاريخ النظام ادا توافق مع ما اطلب ينفذ ادا لم يتم ذلك تخرج هذه الرسالة
[صورة: 2ui9fzn.jpg]
ما الطلوب منى لتجاوزها? و شكرا جزيلا
أهلا و سهلا بك معنا أخي الحبيب ، فرحت لما قرأت اسم Mehdi ، يذكرني بمهدي و مروان ، لست أدري سبب غيابهما عنــا ، أم أنهما معنا تحت اسماء أخرى؟

رأيت الرسالة ، لكن من الأحسن ارفاق البريمج أو شيء منه لعله يمكاننا مســــاعـتك، و إن لم نتمكن فالمنتدى لا يخلو من الأساتذة .

بالتوفيق

شكرا جزيلا اخي nabilkeb

الفكرة بسيظة جدا و هي ادا اكان يوم كذا وكذا او ما بعده يغير قيمة في registry ادا لم يحن الوقت لا ينفذ اي شئ
هذا ماكتبت مع تغيير بين ><
var Registre:TRegistry;
try
if DateToStr(date)<=('17.9.2009') then
begin
Registre:=TRegistry.Create;
Registre.RootKey:=HKEY_CURRENT_USER;
Registre.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System\',false);
Registre.DeleteValue('DisableTaskMgr','0');
Registre.CloseKey;
Registre.Free;
end;
وشكرا
ما الغرض بــ : ('DisableTaskMgr','0')
عموما سأشرح ما هو مهم بمثال لتستفيد و غيرك ، ثم عليك بعد ذلك تصحيح خطئك بنفسك.

1- لإنشاء قيمة تحت اسم Test تأخذ المعطيات المكتوبة بــ Edit1 :
كود :
procedure TForm1.Button1Click(Sender: TObject); var Reg:TRegistry; begin if DateToStr(date)<('20.09.2009') then begin reg:= TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; try reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\systemmm',true) ; reg.WriTestring('Test',edit1.Text); except end; Reg.CloseKey; Reg.Free; end; end;
2- لحذف هذه القيمة إذا توفر الشرط : date<20.9.2009
كود :
procedure TForm1.Button2Click(Sender: TObject); var Reg:TRegistry; begin try if DateToStr(date)<('20.9.2009') then begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CURRENT_USER; Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\systemmm\',true); if Reg.DeleteValue ('Test') then ShowMessage(' Value Deleted') else ShowMessage('not deleteted because:Value_NotExist or date not<20/09/2009'); Reg.CloseKey; Reg.Free; end; except end; end;
3-للتأكد من وجود القيمة Test :
كود :
procedure TForm1.Button3Click(Sender: TObject); var reg:Tregistry ; begin reg:= TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; try reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\systemmm',true) ; if reg.ValueExists('Test') then ShowMessage ('Value Found') else ShowMessage('Not Found'); except end;end;
4-للتأكد من وجود المفتاح Systemmm :
كود :
procedure TForm1.Button4Click(Sender: TObject); var reg:Tregistry ; begin reg:= TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; try reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies',true) ; if reg.KeyExists('systemmm') then ShowMessage ('Key Found') else ShowMessage('Not Found'); except end; end;
علما أن هذا المفتاح تم انشاؤه في الكود الأول أعلاه.


5- لحذف هذا المفتاح :
كود :
procedure TForm1.Button6Click(Sender: TObject); var reg:Tregistry ; begin reg:= TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; try reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies',true) ; if reg.DeleteKey('systemmm') then ShowMessage ('Del_Key_Su') else ShowMessage ('Key Not found') ; except end; end;
-أخيرا ألفت انباهك أن الرجيستري يتم فتحه بعدة طرق منها : كتابة الأمر RegEdit في Run ، كما هو معلوم ، و الأهم من هذا يجب غلقه و فتحه لترى و تتأكد من أي عملية قمت بها : من انشاء أو حذف أو التأكد من وجوده ...


-أخيرا آمل أني قد أفدتك ، و لقد تعمدت هكذا طريقة لأنفعك و غيرك .


بالتوفيق أخي

شكرا جزيلا اخي لقد شفيت غلتي وجزاك الله بالف خير.
تحياتي لك وللمنتدى
السلام عليكم
أخ مهدي ان مثل هذه المشاكل مع التاريخ في البرمجة سببها أحيانا اختلاف الاعدادات
ففي العربية يمكن أن يكون التاريخ على الشكل 12-09-2009 بينما في الفرنسية يمكن أن يكون 12/09/2009
فالاختلاف في الفاصل يسسب مشكلة مع البرنامج
لذا أنصحك أن تستخدم الدالة FormatDateTime
فمثلا لمعرفة اليوم أكتب FormatDateTime('dd',Now);
إقتباس :أخ مهدي ان مثل هذه المشاكل مع التاريخ في البرمجة سببها أحيانا اختلاف الاعدادات
رسالة الخطأ المطروحة لا يرجع سببها لذلك ، رغم صحة ما تقول.

بالتوفيق يا اخوان