سم الله الرحمن الرحيم
مقدمة الى الريجستري
لا شك أن الريجستري يلعب دورا مهما في نظام التشغيل ويندوز!
ماذا تتصور لو لم يكن الريجستري؟ يالتأكيد..أن عمل تخزين واستدعاء البيانات سيواجه صعوبة حقيقية ومشكلة عالقة.
لا يخفى عليكم أن دلفي تتيح لكم امكانية التعامل مع الريجستري بصورة سهلة وقوية في نفس الوقت!
فلا داعي لاستخدام دوال API الخاصة بالريجستري كما في++C أو في الفجوال بيسك!
إن دوال الريجستري الخاصة بدلفي تتيح اليوم إمكانية التعامل مع الريجستري بعيدا عن دوالAPI المعقدة.
أنت اليوم كمبرمج دلفي تفرض نفسك على جميع مبرمجي العالم بأي لغة كانوا يبرمجون!!
خصوصا بعد إصدار دلفي 8 وما فوقها والتي دمجت لغتين في بيئة واحدة!
بإمكانك البرمجة لـ.NET اليوم باستخدام دلفي نفسها!!
فلا تتعب نفسك وتتعلم احدى لغات الدت نت فدلفي هي دوت نت وفي نفس الوقت هي VCL Application.
ستتعلم كيفية إنشاء البرامج التفاعلية لحفظ البيانات في الريجستري وستتعلم طريقة انشاء برنامج يوفر امكانية ادراج صورة الى شريط الأدوات في المستكشف وجهاز الكمبيوتر.
ما هو الريجستري؟
سؤال لطيف ووجيه في نفس الوقت!!
أجيب على هذا السؤال بطريقة مفصلة يفهمها القريب والبعيد!
هناك برامج عديدة تستخدم الريجستري كأداة لتخزين البيانات التي تستخدمها بشكل متكرر.
مثلا: تذكير اسم المستخدم؛حفظ آخر مجلد تم الوصول اليه؛وجميع ما هو من قبيل هذه الأشياء.وكل هذه الأشياء هي للتذكير.
لأمثل بصورة أوضح لنفرض أن لديك مثل برنامج MSN Messenger
يستخدم اسم مستخدم وكلمة مرور
إذا لابد للمستخدم أن يكتب اسم المستخدم وكلمة المرور لكي يستطيع الدخول الى البرنامج.
أما أنت كمبرمج فتريد حفظ اسم المستخدم كلما فتح المستخدم البرنامج.
كبرنامج المسنجر تماما.
اذا لابد لك أن تستخدم الريجستري..!
طبعا هذا كمثال بسيط للغايةعلى تخزين المعلومات واستدعائها في Edit وهناك عدة برامج عملاقة تستخدم الريجستري كجزء أساسي في برنامجها
لكن نكتفي بهذا المثال البسيط ولا نعقد الأمور.
والآن عرفنا أن الريجستري هو أداة لتخزين البيانات...
تاريخ الريجستري..
إن الريجستري حديث العهد نسبيا..
أول مرة ظهر فيها الريجستري هي عندما ظهر نظام التشغيل Windows 95 وكان الهدف من وراء الريجستري هو توفير أداة فعالة لحفظ البيانات والوصول اليها مجددا
وقد وجد الريجستري على أساس قاعدة بيانات تحتفظ بالبيانات المرسلة اليها من البرامج.
لكنك تتساءل الآن كيف كان يتم تخزين البيانات سابقا؟؟!
سابقا كان يتم تخزين البيانات بطريقة ملف الـ ini كما في Windows 3.11 فهناك عدة ملفات خاصة بنظام التشغيل مثل System.ini و Win.ini
حيث يتم حفظ البيانات في هذان الملفان.. ولا يخفى عليك أن ملفات الـ ini إلى الآن تستخدم ولكنها تستخدم لطرق خاصة مثلا حفظ أسماء الملفات المفتوحة مؤخرا وغيرها من الأمور الأخرى التي لا تحتاج الى ريجستري
وملفات الـ ini هذه هي ملفات خاصة مرتبطة بنفس البرنامج ولا علاقة لها بتظام التشغيل يعني بعبارة أخرى هي لا تستخدم ملفات الويندوز System.ini و Win.ini.
ومن الدوافع التي أظهرت الريجستريهي عدم قدرة تلك الملفات على تخزين البيانات الكبيرة والتي تستخدم بكثرة!!
لأن الملفين السابقين مختصين بنظام التشغيل ذاته وتقلع هذه الملفات عند اقلاع نظام التشغيل وبالتالي سوف تقلع جميع البيانات المكتوبة في هذه الملفات بشكل تلقائي مما يسبب بطئا واضحا في نظام التشغيل وأيضا في التعامل معه.
كيف أستخدم الريجستري؟
إن الريجستري هو برنامج مرفق مع نظام التشغيل ويندوز وكما ذكرنا سابقا فإنه أداة فعالة لتحزين البيانات واستدعائها من خلال البرامج.
وإذا فتحنا الريجستري وذلك من خلال إبدأ>تشغيل>ثم كتابة الأمر RegEdit فسوف تظهر الشاشة التالية:

يتكون الريجستري من مفاتيح رئيسية ومفاتيح فرعية وهذه المفاتيح متوفرة على الجهة اليمنى من الريجستري وكل هذه مفاتيح رئيسية مصنفة حسب البيانات المخزنة فيها
مثلا مفتاح HKEY_CLASSIC_ROOT وهو مفتاح رئيسي تتفرع منه مفاتيح فرعية خاصة بلواحق الملفات مثلا اللاحقة bmp والخاصة بملفات الـ BitMap
والتي تعمل تحت برنامج الرسام فقد أدرج اسم هذه اللاحقة بالإضافة الى مسار برنامج الرسام وعندما يصادف الويندوز أي لاحقة بهذا الاسم فسوف ينتقل تلقائيا ويشغل برنامج الرسام ليظهر هذا الملف .. وإلخ
أما بالنسبة للمفاتيح الرئيسية الأخرى فهي بهذا الشكل:
*HKEY_CLASSIC_ROOT: مفتاح رئيسي خاص بلواحق الملفات كما ذكرنا تحفظ في هذا المفتاح الرئيسي.
*HKEY_CURRENT_USER: مفتاح رئيسي يحتفظ بمعلومات البرامج الأخرى مثلا معلومات ويندوز ستجدها في هذا المفتاح وهو مصنف حسب المفاتيح
مثلا Software يندرج تحته البرامج/الشركات المستخدمة في جهازك.
*HKEY_LOCAL_MACHINE: وهو مفتاح خاص بمعلومات جهازك وماذا يحتوي من قطع وإلخ..من معلومات أخرى.
*HKEY_USERS: مفتاح رئيسي خاص بمستخدمي الكنبيوتر.
*HKEY_CURRENT_CONFIG: مفتاح خاص بهئية الكمبيوتر.
الآن نأتي الى المفاتيح الفرعية أنظر الشكل التالي:

ألق نظرة على المفاتيح الرئيسية وكيف تتفرع منها مفاتيح فرعية..
المفاتيح الرئيسية تسمى Key والمفاتيح الفرعية تسمى Sub Key.
وهناك قيم(Value)وهي موجودة في المفاتيح الرئيسية والمفاتيح الفرعية ويمكن للقيم أن تأخذ أيا من أنواع البيانات التالية:
*سلسلة حرفية (String)
*أرقام ثنائية(Binary)
*نوع أرقام(Dword)
*سلسلة متعددة(Multi-String Value)
*سلسلة توسعية(Expandable)
والقيم هي أساس الريجستري حيث جميع البيانات تخزن في القيم مثلا نجعل قيمة بعنوان UserName تحفظ اسم المستخدم وهذا بالنسبة الى القيم الأخرى.
وللوضوح الأكثر انظر الشكل التالي:

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


