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

التحكم في الرجيستري

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

شرح لاخ زكيري عبد العالي

التحكم في الرجيستري بالدلفي

1*- ماهي الرجيستري

2*-الهيكل العام للرجيستري

3*-ما يمكن ان تفعله بالرجيستري

4*-التحكم في الرجيستري بالدلفي

أ-الدوال والاجراءات الخاصة بالمفاتيح

ب-الدوال والاجراءات الخاصة بالمعطية

ج-الدوال والاجراءات الخاصة بالقيم

5*-الخلاصة

1- ماهي الرجيستري :هي قاعدة بيانات متكونة من الملفين SYSTEM.DAT و USER.DAT اذن هي عكس ملفات INI والتي تعتبر ملفات نصية بل هي في شكل ملف binaire الدي يكتب بواسطة ادوات خاصة .

الهيكل العام للرجيستري :كما ذكرت سابق هي تتكون من ملفين :

SYSTEM.DAT -* : هو ملف اساسي نجد فيه كل المعلومات الخاصة بالبرامج و الاجهزة المثبتة في الجهاز وايضا المعلومات الخاصة بالاجهزة وهدا مما يجعل حذف احد البيانات يؤدي الى عدم تشغيل الجهاز مثلا . ونجد هذا الملف في مجلد الدي تثبت فيه الwindows .

*- USER.DAT : هو ملف له علاقة مع المستعمل كالستعمالات سطح المكتب و التطبيقات ...... الخ . يعرض جزء من ملف win.ini حيث اي تغيير في هذا الملف يتم التغيير في الرجيستري والعكس صحيح .

نستطيع التعرف على الرجيستري اكثر حين التمعن في الشكل الدي يعرضه الملف التنفيدي regedit.exe

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

المفاتيح الرئيسة HKEY8CLASSES_ROOT

هو المسؤل عن الاختصارات المجودة في الونداوز lnk واشتراك associat الملفات .

HKEY_CURRENT_USER

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

HKEY_LOCAL_MACHINE

ويحتوي على المعلومات الخاصة بالاجهزة والبرامج المثبتة في الجهاز.

HKEY_USERS

له علاقة بالاجهزة المثبتة وخاصة الشبكة والطرفيات.

HKEY_CURRENT_CONFIG

ويحتوي على المعلومات الخاصة بالطرفيات pug&play.

ما يمكن ان تفعله بالرجيستري :

هناك امور كثيرة وكثيرة جدا ومن بينها :

تغيير الاوان الموضوعة في الشجرة للمستكشف الونداوز

تغيير لون الازرار لكل النوافد

تغيير الايقونات التي لا يمكن تغييرها عادة

تشخيص قائمة ابدا

تغيير صورة سطح المكتب

تستطيع ايضا الدخول الى الشبكة مباشرات دون تكرار عملية كتابة الاسم وكلمة المرور

حذف الاسهم الموجودة في ملفات الاختصار .

حذف كلمة المرور المستعملة لشاشة التوقف

منع الاتوران ? اقراص الاوديو.

ضع البرنامج في قائمة التشغيل

-تغيير قائمة بدا التشغيل الى مجلد اخر

-تشغيل الزر الاوسط للفارة

-تحويل ايقوناة الصور الى الصورة داتها لكن بحج ايقونة.

وضع تطبيقك الشخصي في البوبيوب الخاص بزر ابدا

تغيير الاشتراك الخاص بالملفات ? برامج الخاصة بفتحها

-تغيير الحرف الخاص بقارء الاقراص المضغوطة

زيادة سرعة المودم

زيادة في سرعة عرض قائمة ابدا.

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

التحكم في الرجيستري بالدلفي

التعليمات المستعملة في الرجيسري :

لكي نستطيع الوصول الى الرجيستري لابد من التصريح بالوحدة Registry في قسم uses

التعليمتات الخاصة بالشيئ ذاته :

اقتباس
لانشاء شيئ في الذاكرة نستعمل امر المعتاد استعماله وهو  (CREATE)  بالطريقة  

TRegistry.Create;  

ولنحطم هدا الشيئ كالعادة بالتعليمة   ((Destroy  بالطريقة        

TRegistry.Destroy

اما اهم الاحداث :

      AfterConstruction هو حدث ناتج مباشرة بعد انشاء الشيئ           //  

      BeforeDestruction  هو حدث ناتج مباشرة قبل تحطيمه                //  

   Free                          //                                 تحرير الشيئ من الذاكرة

اوامر معروفة ومكررة  

     ClassInfo

        ClassName  

       ClassNameIs  

       ClassParent  

       ClassType  

       CleanupInstance  

       DefaultHandler  

       Dispatch  

       FieldAddress  

       FreeInstance  

       GetInterface  

       GetInterfaceEntry  

       GetInterfaceTable  

        InheritsFrom  

       InitInstance  

       InstanceSize  

       MethodAddress  

       MethodName  

       NewInstance  

       SafeCallException  

 

التعليمات الخاصة بالمفاتيح :

اقتباس
1- لانشاء مفتاح جديد في الرجيستري نستعمل الدالة التالية التي تعطي قيمة منطقية t. ان تم الانشاء f.  ان لم يتم .

 function  CreateKey(اسم المفتاح'' ):  Boolean;

2- لحذف مفتاح نستعمل الدالة التي تعطي قيمة منطقية T  ان تم الحدف اي ان وجد المفتاح

 function  DeleteKey(const Key:  String ):  Boolean;

3-  لفتح مفتاح موجود سابقا الدلة التي تعطي قيمة منطقية T  ان وجد هدا المفتاح .

 function  OpenKey( اسم المفتاح:  String; CanCreate:  Boolean ): Boolean;

4- لغلق المفتاح المحدد نستعمل التعليمة  

Reg.CloseKey;  

5- لحذف مفتاح من الرجيستري نستعمل الدلة

 function  DeleteKey(اسم المفتاح' '):  Boolean;

6- للبحث عن مفتاح فرعي في مفتح رئيسي نستعمل الدالة التالية التي تعطي قيمة منطقية t. ان تم ايجاده .

function  KeyExists(اسم المفتاح' ' ):  Boolean ;

7-لانشاء مفتاح او اكثر مع جميع القيم بداخليه في مفتاح رئيسي حيث يتم شحن القيم من ملف  

function  LoadKey( const  Key, FileName:  String ):  Boolean ;  

8- لنقل مفتاح اي تغير مكانه (قص) نستعمل الاجراء التالي حيث نستطيع تغيير اسم المفتاح في ان واحد:

  

procedure  MoveKey( const  OldName, NewName:  String;Delete:Boolean);

9- لفتح مفتاح وكان المفتاح موجودا ترجع الدالة openkey القيمة T  

 function  OpenKey( const  Key:  String; CanCreate:  Boolean ): Boolean;

ونستطيع ايضا فتح مفتاح للقرائة فقط بالدالة  

 function  OpenKeyReadOnly( const  Key:  String ): Boolean;

 

ملاحظة  

' اسم المفتاح'  تمثل قيمة من نوع سلسلة حروف  

وقبل اي عملية لا بد من تحديد مسار المفتاح  

في انتظار المتابعة (f)ــ||>>>

#2

شكرا شكرا مشرفنا

لنتابع

10 –لاستخراج معلومات خاصة بالمفتاح :

*-عدد المفاتيح الجزئية

*-تاريخ اخر تغيير

*-عدد المعطيات ...الخ

نستعمل الدالة

 function  GetKeyInfo( var  Value: TRegKeyInfo):  Boolean;

11-نستعمل الاجراء التالي لاعطاء اسماء كل المفاتيح الجزئية للمفتاح المحدد

 procedure  GetKeyNames(Strings:  TStrings );

12-لمعرفة ان كان المفتاح المحدد يملك مفاتيح فرعية نستعمل الدالة

 function  HasSubKeys:  Boolean;

13- نستطيع استبدال مفتاح بكل مايحتويه من مفاتيح فرعية وقيم عن طريق اسبدالنا لملف essaim

function  ReplaceKey(const Key, FileName, BackUpFileName:  String ):  Boolean;

14-نستطيع فتح مفتاح واسترجاع القيم التي تغيرت وجلبها من الملف الذي حفظناه essaim

 function  RestoreKey(const Key, FileName:  String ):  Boolean;

15-لحفظ مفتاح في شكل ملف essaim نستعمل الدالة

 function  SaveKey( const  Key, FileName:  String ):  Boolean;

16-ولحذف essaim للجيستري نستعمل UnLoadKey

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

ب-الدوال والاجراءات الخاصة بالمعطية ReadBinaryData

GetDataInfo

GetDataSize

GetDataType

ReadDateTime

WriteDate

ReadDate

WriteBinaryData

ج-الدوال والاجراءات الخاصة بالقيم.

ValueExists

DeleteValue

RenameValue

GetValueNames

ReadBool

ReadCurrency

ReadFloat

ReadInteger

ReadString

ReadTime

RegistryConnect

WriteBool

WriteCurrency

WriteDateTime

WriteExpandString

WriteFloat

WriteInteger

WriteString

WriteTime

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

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