.
- صور سيارات
- صور تلوين
- صور عالية الجودة
- صور
- رياض اطفال
- صور اخترناها لك
- تلوين حيوانات
- عروض اسعار
- صور موبيلات
- صور كرتون صور انمى
- صور مميزة
- صور طبيعة
- صور غريبة
- صور حيوانات وطيور
- صور منوعة
- صور اسلامية
- صور للماسنجر
- صور اجهزة
- مقالات
- صور خلفيات
- صور شخصيات شهيرة
- الحروف
- صور مضحكة
- صور متحركة
- تلوين طيور
- صور اطفال
- صور علمية
- صور لاب توب
- فيديو
- صور حب
- تعليم الرسم
- صور ثلاثية أبعاد
- صور نجوم كرة القدم الاوروبية
- صور نجوم كرة القدم العربية
- تلوين اعلام الدول
- صور رياضة
- الفصول
- صور الديكور
- صور الفضاء الخارجى
- صور تصميمات
- صور تلوين كرتون
- صور ملابس
- العاب
- صور غرف نوم اطفال
- صور فنانين
- صور مرسومة
- صور ملابس اطفال
- صور موتوسيكلات
- قصص اطفال
- العاب تلوين
- اناشيد
- تلوين حشرات
- صور كاريكاتير
- صور كمبيوتر وانترنت
- افلام انمي وكارتون
- العاب الأطفال
- خلفيات موبيل
- صور أدوات
- صور انسان
- صور كاميرات
- صور معالم سياحية
- صور نباتات
- اناشيد للاطفال
- تلوين فواكه
- تلوين نباتات
- شروحات بالصور
- صور العاب
- صور حروب وأسلحة
- صور علوم وتكنولوجيا
العمل مع محرر التسجيل Registry من خلال الدوت نت
مقدمة:
دائماً ما كان المبرمجون يجدون محرر التسجيل Windows REGISTRY مكاناً مناسب لتخزين معلومات وإعدادات برامجهم وذلك لأن الوصول للبيانات عبر الريجستري هو اسرع من الوصول للبيانات من الملفات وأيضاً لأنه مستودع آمن للبيانات في نظام التشغيل.
أساسيات محرر التسجيل Windows Registry:
بنية الريجستري منظمة بشكل هرمي. ويوجد في الريجستري خمسة مفاتيح معرفة مسبقاً تخزن تحتها جميع البيانات وكما ان هذه المفاتيح لا يمكن إعادة تسميتها او حذفها, ويندرج تحت كل مفتاح منها العديد من المفاتيح القرعية Subkeys إضافة إلى قيم البيانات Values. وإليكم وصف بسيط حول كل مفتاح منها:
المفتاح | وصفه |
HKEY_CURRENT_USER | يحوي على إعدادات ومعلومات حول المستخدم الحالي للنظام, أي ان كل تفضيلات المستخدم الحالي تخزن هنا. |
HKEY_USERS | يحوي على إعدادات ومعلومات حول جميع المستخدمين المسجلين في النظام. |
HKEY_LOCAL_MACHINE | يحوي معلومات وإعدادات معينة حول جهاز الكمبيوتر بغض النظر عن المستخدم الحالي للنظام. |
HKEY_CLASSES_ROOT | يحوي البيانات التي تربط بين أنواع الملفات والبرامج التي يمكن قراءة هذه الملفات بواسطتها, إضافة إلى البيانات الخاصة بكائنات COM. |
HKEY_CURRENT_CONFIG | يحوي معلومات حول قطع الجهاز Hardware. |
العمل مع محرر التسجيل في الفيجوال ستوديو:
العمليات على الريجستري في .net يمكن القيام بها عن طريق كلاسين موجدين في مجال الاسماء Microsoft.Win32. الكلاسين هما Registry و RegistryKey حيث ان الكلاس Registry يزودنا بالمفاتيح الاساسية في الريجستري على شكل طرق (Methodes) عامة وللقراءة فقط وأهم الطرق التي يحويها:
ClassesRoot | يمكننا من الوصول إلى المفتاح HKEY_CLASSES_ROOT |
CurrentConfig | يمكننا من الوصول إلى المفتاح HKEY_CURRENT_CONFIG |
CurrentUser | يمكننا من الوصول إلى المفتاح HKEY_CURRENT_USER |
LocalMachine | يمكننا من الوصول إلى المفتاح HKEY_LOCAL_MACHINE |
Users | يمكننا من الوصول إلى المفتاح HKEY_USERS |
كل واحدة من الطرق السابقة تزودنا بكائن Object من نوع الكلاس RegistryKey والذي تستخدم توابعه للوصول إلى المفاتيح الفرعية والبيانات التابعة للمفتاح الرئيسي. أهم ما يقدمه لنا هذا الكلاس RegistryKey:
الخاصية / التابع / الطريقة | العمل |
SubKeyCount | ترجع عدد المفاتيح الفرعية الموجودة تحت المفتاح الحالي |
ValueCount | ترجع عدد القيم الموجودة في المفتاح الحالي |
Close | إغلاق المفتاح الحالي المفتوح وحفظ بياناته في حال تم تعديلها |
CreateSubKey | إنشاء مفتاح فرعي أو فتح مفتاح موجود مسبقاً |
DeleteSubKey | حذف المفتاح الفرعي في حال لم يكون يحوي مفاتيح فرعية |
DeleteSubKeyTree | حذف المفتاح الفرعي وجميع المفاتيح الفرعية الموجودة تحته |
DeleteValue | حذف قيمة محددة موجودة في المفتاح الحالي |
GetSubKeyNames | ترجع مصفوفة من نوع String تحوي اسماء المفاتيح الفرعية |
GetValue | ترجع بيانات القيمة |
GetValueNames | ترجع مصفوفة من نوع String تحوي اسماء القيم الموجودة في المفتاح الحالي |
OpenSubKey | فتح مفتاح فرعي |
SetValue | إسناد بيانات قيمة ما |
مثال عملي (كيفية التحكم في تفعيل وإلغاء تفعيل إدارة المهام):
العمل مع الريجستري من خلال .net يقودنا إلى صيغة عامة في كتابة الكود وهي:
- فتح المفتاح الذي نريد العمل معه او مع القيمة والمفاتيح الفرعية التابعة له.
- إجراء العمليات المطلوبة.
- ثم إغلاق المفتاح او المفاتيح التي تم فتحها.
- كود معرفة هل إدارة المهام مفعلة أم لا:
private void Form1_Load(object sender, EventArgs e)
{
RegistryKey hKey = Registry.CurrentUser.OpenSubKey(regpath,true);
if (hKey == null)
chkTaskManager.Checked = false;
else
{
string res = hKey.GetValue("DisableTaskMgr", "0").ToString();
hKey.Close();
if (res == "1")
chkTaskManager.Checked = true;
else
chkTaskManager.Checked = false;
}
}
من أجل التحكم في تفعيل إو إلغاء تفعيل إدارة المهام فإننا بحاجة إلى التعامل مع القيمة DisableTaskMgr الموجودة في المسار التالي:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
حيث إذا كانت هذا القيمة تساوي الواحد فإن إدارة المهام غير مفعلة والعكس صحيح.
لذلك قمنا بفتح المفتاح الذي يحوي القيمة عن طريق التابع OpenSubKey الخاص بالكائن hKey الذي هو من النوع RegistryKey وقمنا بفتح المفتاح للكتابة عن طريق تمرير القيمة true للبارميتر الثاني.
في حال كانت قيمة الكائن hKey تساوي null هذا يعني ان التابع فشل في فتح المفتاح المطلوب أي أنه غير موجود فهذا يعني ان القيمة التي سنفحصها غير موجودة أصلاً لذلك فإن إدارة المهام ستكون مفعلة لذلك نسند القيمة true لصندوق التحقق.
في حال النجاح في فتح المفتاح نقوم بقراءة القيمة DisableTaskMgr ووضعها في متحول ثم نقوم بإغلاق المفتاح بعد الانتهاء كي لا تحدث أخطاء ثم نقوم بإسناد قيمة إما true او false لصندوق التحقق حسب القيمة.
- كود التحكم في تقعيل إدارة المهام:
private void chkTaskManager_CheckedChanged(object sender, EventArgs e)
{
if (chkTaskManager.Checked)
{
RegistryKey hKey = Registry.CurrentUser.OpenSubKey(regpath,true);
if (hKey == null)
{
hKey = Registry.CurrentUser.OpenSubKey(regpath.Substring(0, regpath.LastIndexOf(@"\")), true);
hKey.CreateSubKey("System");
hKey.OpenSubKey(regpath, true);
hKey.SetValue("DisableTaskMgr", 1);
hKey.Close();
}
else
{
hKey.SetValue("DisableTaskMgr", 1);
hKey.Close();
}
}
else
{
RegistryKey hKey = Registry.CurrentUser.OpenSubKey(regpath, true);
hKey.DeleteValue("DisableTaskMgr");
hKey.Close();
}
}
عند تفعيل صندوق التحقق سنقوم بإلغاء تفعيل إدارة المهام لذلك كالعادة نقوم أولاً بفتح المفتاح المطلوب ثم يتم التحقق من أن المفتاح المطلوب هل موجود أما لا وفي حال كان المفتاح غير موجود فإننا سنقوم بإنشاءه من أجل إنشاء القيمة التي ستقوم بإيقاف إدارة المهام.
وكي نقوم بإنشاء المفتاح فإننا نفتح المفتاح الأعلى منه أي المفتاح:
HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Policies
حيث نقوم بإقتطاع جزء من السلسلة النصية التي تحمل مسار المفتاح لنحصل على مسار المفتاح السابق. بعد ذلك نقوم بإنشاء المفتاح System ثم نقوم بإنشاء القيمة DisableTaskMgr واسناد القيمة واحد لها من أجل إيقاف إدارة المهام.
أما في حال كان المفتاح موجوداً فإننا فقط فقوم بإنشاء القيمة DisableTaskMgr واسناد القيمة واحد لها.
أما القسم الثاني من الكود وهو لإعادة تفعيل إدارة المهام فإننا نقوم بحذف القيمة DisableTaskMgr وذلك بعد فتح المفتاح المطلوب وحذف القيمة ثم إغلاق المفتاح.
تنبيهات:
- من أجل الكتابة والقراءة من الريجستري تحتاج إلى صلاحيات آمان أي ان المستخدم الحالي الذي ينفذ الكود إذا لم يكن يملك صلاحيات فإن تنفيذ كود سيؤدي إلى ظهور إعتراض SecurityException.
- محرر التسجيل جزء حساس جداً في نظام التشغيل لذلك يُفضل عمل نسخة احتياطية قبل التعامل مع الريجستري حيث ان اي ضرر يلحق بالريجستري سيؤدي إلى أخطاء وانهيار في النظام.
مواضيع أخرى قد تهمك :

يمكنك التعليق باستخدام الفيس بوك
0 تعليقات
اترك تعليق
صور هبوط الثلوج على مصر | Sno...
13-Dec-2013سعر ومواصفات جوال موتورولا در...
26-Jul-2013سعر ومواصفات جوال Motorola Dr...
25-Jul-2013سعر ومواصفات هاتف Motorola Dr...
24-Jul-2013سعر ومواصفات وصور جوال LG Opt...
23-Jul-2013
المتابعون
خدمات اخري
المواضيع الاكثر مشاهدة
- ارباح سامسونج فى الربع الثالث من العام الحالى 2012 فى ازدياد
- جوجل تعلن عن نظام الاندرويد الجيللى بيين 4.2 رسميا
- مؤتمر جوجل والنيكسوس والاندرويد والمزيد
- نظام كل الناس بلس من اتصالات بالتفاصيل و الشروط
- اسعار صرف الريال القطري مقابل الين الياباني QAR - JPY
- ads
- ورود مغطاة بالثلج تجمع بين جمال الورود ونقاء الثلج
- تعلم اللغة اليابانية japan
- ممر التنمية لفاروق الباز -تفاصيل المشروع
- شرح وتحميل برنامج SBSH VoiceQ v1.00
ما هو رأيك فى الموقع
روابط
الارشيف
- ديسمبر (1)
- يوليو (15)
- يونيو (516)
- مايو (64)
- أبريل (29)
- مارس (25)
- فبراير (52)
- يناير (56)
- ديسمبر (66)
- نوفمبر (54)
- أكتوبر (55)
- سبتمبر (70)
- يوليو (1)
- يونيو (1)
- مايو (10)
- أبريل (1)
- مارس (3)
- فبراير (8)
- يناير (25)
- ديسمبر (102)
- نوفمبر (186)
- أكتوبر (242)
- سبتمبر (308)
- أغسطس (257)
- يوليو (370)
- يونيو (282)
- مايو (416)
- أبريل (556)
- مارس (1848)
- فبراير (1734)
- يناير (1128)
- ديسمبر (796)
- نوفمبر (741)
- أكتوبر (660)
- سبتمبر (520)
- أغسطس (490)
- يوليو (665)
- يونيو (742)
- مايو (366)
- أبريل (340)
- مارس (325)
- فبراير (184)
- يناير (320)
- ديسمبر (182)
- نوفمبر (130)
- أكتوبر (77)
- سبتمبر (74)
- أغسطس (101)
- يوليو (81)
- يونيو (181)
- مايو (329)
- أبريل (241)
- مارس (49)
- فبراير (25)
- يناير (31)
- نوفمبر (1)
- يونيو (2)
- مايو (5)
- أبريل (7)
- مارس (7)
- فبراير (12)
- يناير (15)
- ديسمبر (13)
- يناير (1)