![]() |
|
معلومة ::: التعامل مع Registry - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : معلومة ::: التعامل مع Registry (/showthread.php?tid=5266) |
معلومة ::: التعامل مع Registry - RaggiTech - 06-10-12 كاتب الموضوع : BADRMEDIA
كلنا يعرف أهمية الريجستري والتعامل معه فى الدوت نت هناك فئات تمكننا من التعامل معه والوصول للمفاتيح فيه مثل : الفئة Class Registry و الفئة Class Registrykey =============================== بداية كيف نستخدم هذه الفئة أول شئ نعرف متغير من نوع الفئة Registrykey كود : [align=left]Dim Key As Microsoft.Win32.RegistryKey[/align]سيكون تعاملنا مع الكائن Key الذي اشتقاقناه من الفئة Class Registrykey بالكود السابق بعد ذلك نختار المفتاح المراد التعامل معه داخل الريجستري وذلك عن طريق الفئة Class Registry مثال كود : [align=left]key = Microsoft.Win32.Registry.CurrentUser[/align]قمنا باختيار المفتاح الرئيسي HKEY_CURRENT_USER أثناء كتابت الكود يقوم محرر الكتابة بإظهار المفاتيح الرئيسية للاختيار بعد أن نختار المفتاح الرئيسي يتم تحديد إذا كنا سنتعامل مع هذا المفتاح الرئيسي أم سنتعامل مع مفاتيح فرعية منه في حالة لو كان التعامل مع المفتاح الرئيسى مباشرة سيكون بالإمكان استخدام الوظائف ( قراءة - كتابة - حذف ) ويتم تنفيذ ذلك عليه أما فى حالة التعامل مع مفتاح فرعي كون علينا تحديد المفتاح الفرعي الذي سنتعامل معه ويكون عن طريق الوظيفة Function OpenSubKey مثال كود : [align=left]Function OpenSubKey(name As String, write As Boolean) As Microsoft.Win32.RegistryKey[/align]نجد أن الوظيفة لها معاملين الأول name نوعه String نحدد فيه اسم ومسار المفتاح الفرعي الذي نريد التعامل معه. والثاني write من نوع Boolean نحدد ما إذا كنا يسمح بالقراءة من والكتابة في هذا المفتاح True، أو بالقراءة فقط دون الكتابة False. يمكن تجاهل المعامل الثاني، هذه الحالة سيتم التعامل مع المفتاح على أنه للقراءة فقط ReadOnly. مثال كود : [align=left]Key = Key.OpenSubKey("Software", True)[/align]حددنا المفتاح الفرعي Software والموجود تحت المفتاح الرئيسي HKEY_CURRENT_USER للحديث بقية إن شاء الله معلومة ::: التعامل مع Registry - RaggiTech - 06-10-12 للمزيد نراجع الفئة على المكتبة http://msdn2.microsoft.com/en-us/lib...ey(VS.71).aspx وللحديث بقية إن شاء الله معلومة ::: التعامل مع Registry - RaggiTech - 06-10-12 سنقوم اليوم أخوانى المكرمين بتكلمة موضوع سجل النظام والتعامل معه =========================================== خصائص الفئة Class Registrykey تحتوي هذه الفئة على ثلاث خصائص Name هذه الخاصية ترجع باسم المفتاح الذي يتم التعامل معه حالياً. SubKeyCount هذه الخاصية تعود بعدد المفاتيح داخل أى تحت المفتاح الذي يتم التعامل معه حالياً. ValueCount هذه الخاصية وظيفتها إعادة عدد القيم الموجودة داخل المفتاح الذي يتم التعامل معه حالياً هذه الخصائص للقراءة فقط ReadOnly لأى لاتستطيع يمكن الكتابة عليها ============================= وظائف الفئة Class Registrykey تحتوي الفئة Class Registrykey على وظائف وإجراءات كثيرة سنتحدث عن بعض منها الوظيفة CreateSubKey Function وظيفة هذه الوظيفة إضافة مفتاح جديد إلى الريجستري كود : Function CreateSubKey(ByVal subkey As String) As Microsoft.Win32.RegistryKeyهذه الوظيفة تقبل معامل واحد فقط وهو المعامل name من نوع String ونحدد فيه اسم المفتاح الجديد الذي نريد تكوينه من اسم الزظيفة يتضح أين سيتم وضع المفتاح أى بداخل المفتاح المستخدم مثال كود : key.CreateSubKey("BADRMEDIA")======================================= الإجراء SetValue Sub وظيفة هذا الإجراء إضافة قيمة جديدة إلى الريجستري كود : Sub SetValue(name As String, value As Objectهذا الإجراء له معاملين الأول name من نوع String ونضع فيه اسم القيمة الجديدة التي نريد تكوينها الثاني value من نوع Object ونحدد فيه القيمة نفسها مثال كود : Dim key As Microsoft.Win32.RegistryKeyيقوم هذا المثال بإضافة القيمة Calc = calc.exe إلى المفتاح HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run وذلك إلى تشغيل الآلة الحاسبة عند تسجيل الدخول إلى المستخدم الحالي نقطة هامة :::::::: ويمكن من هذا المثال إمكانية وضع البرنامج الخاص بك في ال StartUp بحيث يتم تشغيله مع بدء تشغيل النظام معلومة ::: التعامل مع Registry - RaggiTech - 06-10-12 الوظيفة GetValue Function وظيفتها إعادة القيمة التي يحملها ال Value أو اسم القيمة الذي نمرره إليها كود : Function GetValue(ByVal name As String, ByVal defaultValue As Object) As Objectالأول name من نوع String ونضع فيه اسم القيمة التي نريد معرفة قيمتها الثاني defaultValue من نوع Object ونضع فيه قيمة افتراضية يتم إرجاعها في حال عدم وجود اسم القيمة المطلوبة ويمكننا عدم التعامل مع هذا المعامل المثال التالي سنحاول معرفة القيمة التي يحملها مدخل قيمة موجود في المسار التالي HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control المدخل اسمه SystemStartOptions سنقوم بإعادة قيمته في مربع نص TextBox، وفي حال عدم وجود هذا المدخل فإن القيمة العائدة ستكون "notihng" مثال كود : Dim Key As Microsoft.Win32.RegistryKey====================================== الإجراء DeleteSubKey Sub وظيفة هذا الإجراء حذف مفتاح من الريجستري وحذف كل القيم التي بداخله، ولكن يشترط أن لا يحتوي هذا المفتاح على أي مفاتيح فرعية منه لأنه في هذه الحالة سيكون عليك استخدام الإجراء DeleteSubKeyTree الصيغة المستخدمة للتعامل مع الاجراء كود : Sub DeleteSubKey(ByVal subkey As String, ByVal throwOnMissingSubKey As Booleanيمرر لهذا الاجراء معاملين المعامل subkey من نوع String وهو المفتاح الذي نريد حذفه المعامل الثاني throwOnMissingSubKey من نوع Boolean ويكون True في حالة الرغبة بإظهار رسالة خطأ عند عدم وجود المفتاح المراد حذفه - وتكون False في حالة الرغبة بعدم إظهار رسالة الخطأ يمكننا تجاهل المعامل الثاني تماماً وسيتم التعامل على أنه يحمل القيمة True مثال كود : Dim Key As Microsoft.Win32.RegistryKeyالمثال السابق نقوم بحذف المفتاح XXX والموجود في المسار التالي HKEY_CURRENT_USER\Software .. طبعاً هذا المفتاح لم يكن موجوداً ولكننا قمنا بإنشائه سابقاً ينتيه للحذف لكى لا يتم حذف أي مفاتيح أو قيم مهمة للنظام |