المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تريد تعرف الرجستري هذا شرح له


عبد الله الساهر
Jan 2005, 04:44 AM
ماهو الرجستري ؟

هو قاعده بيانات تستخدم لتخزين الاعدادات و الخيارات لبرامج ميكروسوفت من عيار 32 بت و يحتوي على المعلومات الازمه من اعدادات عتاد الجهاز Hardware settings , برامج Software , مستخدمين Users ..ألخ و اي تغيير في خصائص الكنترول بنل اوالملفات و ترابطها File Associationsاو تركيب برنامج جديدNew Software...راح ينعكس التغير اللي صار بالنظام الى تسجيل بياني في الرجستري . الملفات الفعليه او الحقيقيه المسئوله عن الرجستري و تكوينه ..تكون بالعاده مخزنه في مواقع مختلفه على حسب اصدر الوندوز اللي عندك , وندوز 95 & 98 فيها ملفين تحت مجلد الوندوز user.dat و system.dat , و وندوز ME تزيد عليهم بي ملف اخرى اسمه classes.dat بينما في وندوز NT/2000 موجوده بختلاف تحت %SystemRoot%\System32\Con fig directory .

هيكل الرجستري Structure of the Registryهيكل الرجستري مرتب في مراتب متسلسله يسمونها hierarchal structure ...للنظره الاولى تبدو معقده شوي ..لكن ما تدري الا وانت مكتشف ان اسهل منها مافيه ...و تشبه تنظيم و استعراض المجلدات في القرص الصلب directory structure.



كل فرع رئيسي في الرجستري له ايقونه بشكل مجلد folder icon و يسمى Hive .. و كل فرع رئيسي او Hive فيه مفاتيح داخل مفاتيح Keys & sub-Keys و هكذا ..و هالمفاتيح فيها values بيانات تحوي القيمه او المعلومه الاساسيه المخزنه في الرجستري . يوجد بالرجستري سته فروع او Hives اساسيه و كل واحد منها فيه معلومات معينه محدده مخزنه بالفرع .

HKEY_CLASSES_ROOTو هذا الفرع فيه كل معلومات و روابط الملفات و اتحادها mappings and association و معلومات خصائص ال drag-and-drop او الواجهه الرسوميه في عملية مسك و افلات الملفات , و الــ Object Linking and Embedding (OLE) ,,,الخ .

HKEY_CURRENT_USERو هذا الفرع مرتبط بشكل اساسي الى فرع HKEY_USERS للمستخدم الفعلي و الحالي للجهاز . , و فيه معلومات الدخول الجهاز logon names و خصائص سطح المكتب و قائمه بدا التشغيل .

HKEY_LOCAL_MACHINEو هذا الفرع فيه مواصفات و خصائص الجهاز من هاردوير hardware , برامج Software..الخ . , و يستخدمه كل مستخدم logon user على الجهاز .

HKEY_USERSفيه معلومات و خصائص مستقله individual preferences لكل مستخدم للجهاز...و كل مستخدم معرف برقم او مفتاح SID تحت الفرع الرئيسي .

HKEY_CURRENT_CONFIGو هذا الفرع مرتبط في HKEY_LOCAL_MACHINE من اجل تشغيل الاعدادات الحاليه للهاردوير بالجهاز hardware .

HKEY_DYN_DATAهذا الفرع ايظا مرتبط في HKEY_LOCAL_MACHINE لتشغيل و استخدام مميزات ال plug & play windows , و هذا الفرع يعتبر Dynamic ديناميكي و يغير نفسه كل ما تغير شي في هاردوير الجهاز او شي انشل منه ..الخ.

انواع البيانات في الرجستري Value Typesيوجد ثلاثه انواع في الرجستري تمثل المجرى الاساسي للفرع او ال Hive و هي : String, Binary, DWORD ....و كل نوع ممكن انه يحمل خمسة انواع من البيانات : REG_BINARYو هذا النوع يخزن البيانات كا binary data كا ارقام و اغلب خصائص و ضوابط عناصر سوقات التشغيل hardware component تستخدم النوع هذا من البيانات . , تقدر تشوف المعلومات المكتوبه عن طريق استخدام اي برنامج hexadecimal

REG_DWORDهذا النوع يخزن معلومه من نوع ارقام 4 byte و بالعاده استخدمها يكون منطقي Boolean يعني مثلا كا الرقم "1" enabled و رقم "0" Disabled . ايظا بالاظافه الى سواقات التشغيل دايم تسجل معايير او parameters للهاردوير بالقيمه هذي .

REG_EXPAND_SZو هذا النوع بيانات strings قابله للتمدد expandable و فيها مخازن مؤقته variables قابله للتغير و الاستجابه عندما يتم طلبها من برنامج . .. مثال : القيمه او الstrings هذي "%SystemRoot%" عندما يتم طلبها من برنامج راح تعيد قيمه او نتيجه هي c:\windows\

REG_MULTI_SZو هذا النوع نفس النوع السابق بس يزيد عليه انه متعدد لتمثيل قيمه.. تحمل قائمه من القيم list of multiple values و كل قيمه مدخله فيه مفصوله عن اللي غيرها بي Null Character

REG_SZهذا النوع الاعتيادي للـ strings و عاده ما يمثل او يعكس بيانات بشريه تفاعليه قابله للقراءه .

و ايظا هناك انواع اخرى غير متوفره او لا يمكن الوصول اليها و مشاهدتها من ال regedit و تحمل بيانات من نوع REG_DWORD_LITTLE_ENDIAN عباره عن رقم 32 بت صغير في هيئه LITTLE_ENDIAN REG_DWORD_BIG_ENDIAN عباره عن رقم 32 بت كبير في هيئه BIG_ENDIAN REG_QWORD عباره عن رقم بيانات من عيار 64 بت REG_QWORD_LITTLE_ENDIAN عباره عن رقم بيانات من عيار 64 بت في هيئه LITTLE_ENDIAN REG_RESOURCE_LIST و فيها مصادر و قوائم سواقات التشغيل device driver resource REG_LINK وهو ارتباط احادي التشفير Unicode Format . يستخدمه الرجستري استخدام داخلي . ولا ترتبط البرامج او تستخدم النوع هذا .

تحرير الرجستري Registry editingقبل ما نبدا في التعبث في الرجستري لازم تكون تعرف تسوي تصدير و استيراد للمفاتيح و عمل نسخ احتياطيه لها ,,, و ذلك عن طريق تفعيل او تنشيط الفرع و الذهاب الى registry و اختيار export



اوكي الان راح نشرح عمليتين في التغير او التعديل في الرجستري راح نسوي OLE Container لكائن الانترنت اكسبلورر والهدف استيعاب هذه التقنيه ومدى فاعليتها في انشاء كائن جديد بستخدام عناصر و ضوابط برامج اخرى وايظا راح نشوف عمليه تغير قيمه او value string في الرجستري و انعكاسها على اداء الوندوز من تحسينات ( manipulate Registry) .

تخصيص الرجستري ( manipulate Registry)

و هي طريقه سهله و تحتاج فقط لمعرفة المفاتيح و الفروع اللازمه لعمل هذا التعديل :

1- تغير محرك البحث الافتراضي للانترنت اكسبلورر اذهب الى HKEY_CURRENT_USER\Softwar e\Microsoft\Internet Explorer\Main و غير القيمه المكتوبه في Search Page

2- تغير عنوان الاكسبلورر اذهب الى HKEY_LOCAL_MACHINE\SOFTWA RE\Microsoft\Internet Explorer\Main و غير القيمه المكتوبه تحت Window Title

3- تحديد الكاش فايلز Lengthen Cache files HKEY_LOCAL_MACHINE\Softwa re\Microsoft\Windows\Curr entVersion\Internet Settings\Cache و غير القيمه المكتوبه تحت CleanupInterval و FreshnessInterval الى سبعه ايام (value=80 3a 09 00)

4- لحل مشكله عدم دعم اسامي الملفات الطويله كا c:\docume~1.doc اذهب الى KEY_LOCAL_MACHINE\System\ CurrentControlSet\Control \FileSystem و خل قيمة NameNumericTail على 0

5- الوندوز باسورد او logon مهم خصوصا اذا كان فيه اكثر من مستخدم للوندوز و عشان تجبر كل مستخدم ان يسوي logon وتعطل زر كانسل cancel اذهب الى HKEY_LOCAL_MACHINE\Networ k\Logon و اكتب MustBeValidated و ادخل القيمه 1

عبد الله الساهر
Jan 2005, 04:44 AM
6- لتغير خط ال notepad اذهب الى HKEY_LOCAL_MACHINE\config \0001\display\settings و غير اسم الخط الموجود في fixedfon.fon الى خط جديد

7- تبي تضيف قائمه خاصه لك مع القائمه اللي تطلع لما تطق رايت كلك على زر start اذهب الى HKEY_CLASSES_ROOT\Directo ry\********************************l رايت كلك على ********************************l و اعمل مفتاح جديد و سمه اي شي مثلا notepad بعدين دبل كلك على الstring اللي فيه "default" و اكتب فيها "&notepad" اعمل مفتاح ثاني تحت المفتاح الاول اللي سويته و اكتب اسمه command دبل كلك على Default و حط قيمه المسار او البرنامج مثلا C:\windows\notepad.exe

8- للوصول لقائمه Add & Remove Program اذهب الى HKLM\Software\Microsoft\W indows\Current Version\Uninstall

9- عندما تكتب عنوان موقع URL في شريط العناوين تلاحظ الاكسبلورر يكمل كتابة العنوان ..بس بعض العناوين ما يكتبها او يكملها .. اذهب الى HKLM \SOFTWARE\Microsoft\Inter net Explorer\Main\UrlTemplate و اكتب قيم جديده كا .asp .php .... الخ

10- كل ما جيت تكتب في الارقم في الكي بورد على الجهه اليمين تلقى زر NumLock على وضع off اذهب الى HKEY_CURRENT_USER\Control Panel\Microsoft\Input Devices بعدين رايت كلك على Input Devices و اختار مفتاح جديد new key و عطه اسم KeyBoard سوى value string جديده داخل المفتاح و اكتب اسمها Numlock و القيمه اللي تبي On او Off

( انشاء OLE Container )

ال OLE هي اختصار Object Linking and Embedding و ما هي الا فرع او امتداد لتطوير ال DDE او Dynamic Data Exchange (تبادل المعلومات الديناميكي ...وهنا نحتاج الى اداوت بسيطه عشان نستعرض ال OLE/ COM object و نسوي واجهه او Object Container



نزله البرنامج من هنا [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

اوكي كما هو واضح في الصوره تلاحظ ماهي الا عباره عن Hive او فروع اساسيه مرتبطه لضبط عناصر الكائنات وارقام التعاريف للتطبيقات او الــ Objects سوى ActiveX او OLE او Com او Ado . بتبسيط ثاني هذي بيئه مستقله خاصه و كان الهدف الاساسي من عمل و انشاء الرجستري في الوندوز هو الوصول الى هذا الملتقى او الكافيه الخاص للمطورين developers يتبادلون فيها المصادر بين مختلف عناصر و ضوابط الكائن لكل شركه . بيئه ضخمه مليئه بالضوابط و العناصر و ايظا فيها وجهه رسوميه و فورمز كافورم الحمايه هذي اللي فضل صاحب البرنامج يوزيها في احد عناصر ال ocx لضوابط تحكم الحركه



الميزه المهمه لهذه التقنيه انها تفتح مجال ال Open Hand Programming او برمجه اليد المفتوحه سوى بعمل Script او عمل ملفات inf او ocx او dll او exe ..ومحاكات اي عنصر و الكتابه الى الرجستري بستخدام اي لغه برمجه. اوكي لما الحين نروح و نطق على Grouped by Component Category ونخليها نشطه راح تطلع ارقام مختلفه في الجهه اليمين من تحت ال All HKEY_CLASSES_ROOT\CLSID

الارقام هذي اللي مثلا {CAD8C813-1F34-1B3E-00CEAE43FF0AAD} ما هي الا CLSID مميز مافيه رقم يشبه له ...و يحمل او يعرف GUID او interface ID لكائن معين. ...خلنا ناخذ مثلا و نطبق عشان نفهم اكثر العلاقه وانشائها بين هذي العناصر ... اولا : يجب عمل رقم GUID لكل جهاز على حده ,, وذلك عن طريق استخدام الاداه uuidgen.exe تجي مع اي SDK او مع الفجول بيسك او الفجول سي ++ (ملاحظه: استخدام رقم عشوائي قد يسبب عطب او خلل في الجهاز مابه لعب) [فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

بعد تشغيل الملف من محث الدوس و كتابه الامر كما هو واضح في الصوره



يطلع عندنا رقم globally unique identifier (GUID) فريد ماله شبيه ابد في محرر التسجيل. كا الرقم اللي واضح بالصوره طالع {90a5e8a0-dd19-11d4-900f-444553540000}

1- الان افتح محرر التسجيل و اذهب الى HKEY_CLASSES_ROOT\CLSID و طق رايت كلك و سوى مفتاح جديد New Key و اكتب فيه رقم ال GUID النتيجه : HKEY_CLASSES_ROOT\<your GUID> 2- سوى sub key مفتح جديد تحت رقم ال GUID و اكتبه فيه implemented categories النتيجه: HKEY_CLASSES_ROOT\<your GUID>\Implemented Categories

3-انشاء sub key رقم او معرف CATID او Category Identifier للعنصر المطلوب لعمل Object Container و في المثال اخترت Internet Explorer Browser Band ويحمل GUID {00021493-0000-0000-C000-000000000046}



النتيجه : HKEY_CLASSES_ROOT\CLSID\<YourGUID>\Implemented Categories\{00021493-0000-0000-C000-000000000046} 4-اعمل مفتح اخر و سمه InProcServer32 و اكتب فيه الان (string value ) ThreadingModel و القيمه خلها " Apartment " النتيجه : HKEY_CLASSES_ROOT\CLSID\<Your GUID>\InProcServer32\Threading Model | "apartment"



5- اعمل مفتح جديد وسمه Instance و اكتبه في (string value ) CLSID و القيمه اكتب رقم او معرف ال Microsoft_CommBand الرقم {4D5C8C2A-D075-11d0-B416-00C04FB90376} النتيجه : HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\CLSID|"{4D5C8C2A-D075-11d0-B416-00C04FB90376} " 6- سوى مفتح جديد سمه InitPropertyBag, النتيجه : HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\InitPropertyBag

7- الان خلنا نروح الى الفرع HKEY_LOCAL_MACHINE\Softwa re\Microsoft\Internet Explorer\Extensions و نسوي CLSID جديد يحمل نفس رقم ال GUID اللي سوينها في اول {90a5e8a0-dd19-11d4-900f-444553540000} من الدوس او نسوي رقم جديد و نشير اليه في ( StringValue) BandCLSID كما عملت انا هنا سويت رقم GUID جديد وله قيمه string " BandCLSID " كما هو واضح بالصوره و ايظا سويت string كا "CLSID " و خليتها تشير الى القيمه {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} و هي تمثل الـ Toolbar Extension للكسبلورر . لازم تسوي كل القيم اللي واضحه بالصوره



و بعدها لما تفتح الاكسبلورر ترح تحصل ال OLE Container و هو عباره عن button في الاكسبلورر

الملك كاظم
Mar 2005, 05:02 PM
شكرا مشرفنا الغالي
ابداع بلاحدووود

HeNrY
Mar 2005, 04:22 PM
شكرا لك عبد الله الساهر


ولقد كنت اجهله


شكرا لك

عبد الله الساهر
Mar 2005, 03:59 AM
شكرا لمروركم الاجمل

أمـ جود ـ
Jun 2005, 08:44 AM
شكر ا عبادي


والله شي رائع

صمت الجمال
Sep 2005, 05:24 AM
والله كان عندي حق لما قلت لك


الأستااااذ



تستحق والله


يعطيك العافية


عبادي

عبد الله الساهر
Mar 2006, 02:05 AM
الله يخليكي


كلك ذوق ياصموت


اشكركم احبائي