تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: التعامل مع Registry
#1
كاتب الموضوع : 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


للحديث بقية إن شاء الله
}}}}
تم الشكر بواسطة:
#2
للمزيد نراجع الفئة على المكتبة

http://msdn2.microsoft.com/en-us/lib...ey(VS.71).aspx

وللحديث بقية إن شاء الله
}}}}
تم الشكر بواسطة:
#3

سنقوم اليوم أخوانى المكرمين بتكلمة موضوع سجل النظام والتعامل معه

===========================================

خصائص الفئة 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")
هنا سيتم إضافة المفتاح BADRMEDIA تحت المفتاح الذي نتعامل معه


=======================================


الإجراء SetValue Sub

وظيفة هذا الإجراء إضافة قيمة جديدة إلى الريجستري


كود :
Sub SetValue(name As String, value As Object
)

هذا الإجراء له معاملين

الأول name من نوع String ونضع فيه اسم القيمة الجديدة التي نريد تكوينها
الثاني value من نوع Object ونحدد فيه القيمة نفسها

مثال

كود :
Dim key As Microsoft.Win32.RegistryKey
key = Microsoft.Win32.Registry.CurrentUser
key = key.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
key.SetValue("Calc", "calc.exe")

يقوم هذا المثال بإضافة القيمة Calc = calc.exe إلى المفتاح

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run

وذلك إلى تشغيل الآلة الحاسبة عند تسجيل الدخول إلى المستخدم الحالي

نقطة هامة ::::::::

ويمكن من هذا المثال إمكانية وضع البرنامج الخاص بك في ال StartUp بحيث يتم تشغيله مع بدء تشغيل النظام















}}}}
تم الشكر بواسطة:
#4

الوظيفة 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
Key = Microsoft.Win32.Registry.LocalMachine
Key = Key.OpenSubKey("SYSTEM\ControlSet001\Control", True)
TextBox1.Text = Key.GetValue("SystemStartOptions", "nothing")



======================================



الإجراء 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
Key = Microsoft.Win32.Registry.CurrentUser
Key = Key.OpenSubKey("Software", True)
Key.DeleteSubKey("XXX", False)

المثال السابق نقوم بحذف المفتاح XXX والموجود في المسار التالي HKEY_CURRENT_USER\Software .. طبعاً هذا المفتاح لم يكن موجوداً ولكننا قمنا بإنشائه سابقاً

ينتيه للحذف لكى لا يتم حذف أي مفاتيح أو قيم مهمة للنظام







}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 1 64 أمس, 09:55 AM
آخر رد: silverlight
Wink [مقال] كفية التعامل مه الجملة الشرطية IF alims 8 3,512 19-11-16, 01:06 AM
آخر رد: LoveVb
  معلومة ::: ListBox Blue Sky 14 2,437 14-11-16, 11:32 PM
آخر رد: فارس جراح
Big Grin [مقال] كفية التعامل مع حلقة التكرار For , For Each alims 8 3,462 01-11-15, 11:51 PM
آخر رد: adel27
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,004 03-06-15, 10:45 PM
آخر رد: أحمد النجار
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 6 2,928 19-12-14, 11:11 PM
آخر رد: sniperjawadino
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 1 627 03-11-14, 12:03 PM
آخر رد: alzahrani
  معلومة مهمه فى المصفوفات ali.alfoly 2 797 30-08-13, 02:25 AM
آخر رد: ali.alfoly
  من المنتدى القديم - معلومة ::: ProgressBar ( للاخ BADRMEDIA ) المبرمج علي نوري 2 1,269 23-08-13, 11:17 PM
آخر رد: nin9e
  الكامل في VB.Net (التعامل مع الأقراص و المجلدات و الملفات) rinawi 3 1,251 25-05-13, 01:11 PM
آخر رد: shaker.soft

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم