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

كيف يمكنني التاكد من أن مفتاح الرجستري موجود أم لا

مغلق
بدأه walidtalat في 2 أبريل 2005 · 6 رد · 719 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخي الحبيب معتز ... إخوتي أعضاء المنتدى الكرام

أتوجه بسؤالي للأخ معتز خصوصا ولجميع الإخوة عموما وسؤالي يتعلق بموضوع الريجستري

كيف يمكنني التاكد من وجود المفتاح الذي أنشأته مسبقا من عدمه

يعني أريد دالة ترجع لي إذا كان هذا المفتاح موجود أو لا ولكم جزيل الشكر

#2

السلام عليكم ورحمة الله وبركاته ,

شكرا على كلامك الحلو يا وليد.

يوجد داله جميله جدا تقوم باستجراع كل الـ Values الموجوده داخل اى Subkey , على شكل مصفوفه نوعها [ ] string , والداله اسمها GetValueNames .

نفترض انك تود معرفة ما اذا كان هناك Value اسمه SearchOptions موجود داخل Subkey اسمه Device Installer في هذا المسار :

Software\Microsoft\Windows\CurrentVersion\Device Installer

نقوم أولا بفتح الـ Subkey عن طريق هذا الكود :

RegistryKey mykey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Device Installer");

ثم نقوم بعمل مصفوفه لكى نقوم باسترجاع كل اسماء الـ Values فيها. , واللي موجوده في الـ Subkey اللي اسمه Device Installer الذي قمنا بفتحه في الكود السابق ,

string[] valuenames = mykey.GetValueNames();

الآن نحن نمتلك كل اسماء الـ Values الموجوده داخل الـ Subkey في مصفوفتنا التي اطلقنا عليها اسم valuenames , ولم يتبقى شئ سوى معرفة هل الـ Value المسمى SearchOptions موجود داخل هذه المصفوفه ام لا .

foreach(string one in valuenames)
  {
 	 if(one == "SearchOptions")
 	 {
    MessageBox.Show("موجود");
    return;
 	 }
  }
  MessageBox.Show("مش موجود");

بس خلاص :)

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

جزاك الله خيرا أخي معتز لسرعة استجابتك وجعله الله في موازين حسناتك

في الواقع أنا أغبطك للخير الكبير الذي تقوم به والجزاء الجميل الذي ينتظرك إن شاء الله

معلومات قيمة جدا تلك التي تفضلت بها، وهي تكمل النصف الثاني من العملية التي أود القيام بها

أما النصف الأول فهو أنني أريد أن أتحقق من وجود ال subkey أساسا وليس value موجودة بداخله

فهل من دالة أو وسيلة تقوم بذلك

#4

اقتباس
في الواقع أنا أغبطك للخير الكبير الذي تقوم به والجزاء الجميل الذي ينتظرك إن شاء الله
ياعم وليد لتاني مره ألف ألف شكر على كلامك الجميل ده الذي يعطيني حماس , ومادمت أعرف شيئا فاظن انه من واجبي توصيله الى الناس , وادعيلي انه فعلا يكون في ميزان حسناتي.

اقتباس
معلومات قيمة جدا تلك التي تفضلت بها، وهي تكمل النصف الثاني من العملية التي أود القيام بها
كان عندي بعد نظر :D

اقتباس
أريد أن أتحقق من وجود ال subkey
نعم هناك داله تشبه الداله التي أخبرتك بها في ردي السابق , وتقوم باسترجاع الـ Subkeys الموجوده في المكان الذي تحدده انت.

والداله اسمها GetSubKeyNames , وهذا مثال على استخدامها ::

نفترض انك تود معرفة اذا كان الـ Subkey المسمى Device Installer موجود اصلا ام لا ؟

استخدم هذا الكود , وهو نفس فكرة الكود السابق مع تغيير اسم الداله ::

RegistryKey mykey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\");
  string[] subkeynames = mykey.GetSubKeyNames();
 	 foreach(string subone in subkeynames)
 	 {
    if(subone == "Device Installer")
    {
    MessageBox.Show("موجود");
    return;
    }
 	 }
 	 MessageBox.Show("مش موجود");

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#5

جزاك الله خيرا أخي معتز وجعل جهدك في موازين حسناتك

طريقة جميله بالفعل لاكتشاف هل ال subkey موجود أم لا

وبالبحث وجدت طريقة أخرى لعلها تفيدك والأخوة أعضاء المنتدى

وهي

RegistryKey kFirstRun=Registry.CurrentUser.OpenSubKey("Software\\Waleed");

حيث kFirstRunهو اسم ال subkey و Waleed مكانه في الريجستري

بعد ذلك أشوف قيمة kFirstRun

if (kFirstRun ==null)

لانه لو ماكانش موجود هتبقى قيمته ب Null

والله الموفق ...

#6

جزاك الله خيرا يا وليد , الكود بتاعك وفر علينا كتابة أسطر بأكملها , الحقيقه الفكره دي مش عارف مجتش في دماغي قبل كدا ازاى :lol: ؟ !

فعلا هناك دائما أكثر من حل للمشكله التي نواجهها.

تم تعديل هذه المشاركة بواسطة معتز شمس في 3 أبريل 2005 في 22:06

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#7

أكيد يا معتز يوجد أكثر من حل للمشاكل التي نواجهها وهذا دليل على أهمية المنتديات العربية لتبادل الخبرات والأفكار بين الشباب العربي

وعلى فكرة

ايه اخر اخبار تسجيلاتك الجميلة لتعليم ال C#

بصراحة كانت في منتهى الروعة على الرغم من أنني لم أشاهد إلا التسجيلات الخاصة بالريجستري فقط

وهذا بريدي أسعد بصحبتك دائما إن شاءالله

walidtalat@hotmail.com

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…