إضافة عنصر الى القائمة المنسدله للمجلد - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الثلاثاء
2016-12-06
1:12 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

إضافة عنصر الى القائمة المنسدله للمجلد
إضافة عنصر الى قائمة المجلدات

مقدمه
في كثير من الأحيان قد نحتاج لإضافة عنصر الى القائمة المنسدله الخاصه بالملفات او المجلدات , يقوم بوظيفه معينه مكمله للتطبيق الذي نعمل عليه , وهذا الأجراء يتم من خلال اضافة مفتاح الى الريجيستري - كم هو بحر عميق ذلك الريجيستري - , وكنا قد شرحنا كيفية التعامل والأضافة داخل الريجيستري في المقاله
http://topcoder.ucoz.com/publ/registry/2-1-0-10

كل ما عليك هو تحديد وظيفة هذا العنصر , ولنكن اكثر تحديداً فعليك تحديد البرنامج الذي يتم تشغيله من خلال ذلك العنصر الجديد .
مفتاح الريجيستري

كما قلنا يتم اضافة مفتاح داخل الريجيستري في المسار التالي
HKEY_CURRENT_USER\Software\Classes\Directory\Shell\My Item\Command
حيث My Item هو اسم او نص العنصر والذي سيظهر في القائمة , وهو ما ستقوم بتغييره حسب حاجتك , ونرى ايضاً انه يندرج منه مفتاح فرعي Command وهو يمثل الأمر الذي سينفذه العنصر , حيث يضاف مسار البرنامج الذي سيقوم العنصر بتشغيله في القيمة Default الخاصه بهذا المفتاح , مع اضافه %1 بعد نهاية المسار , وهذا تقريباً يمثل متغيرات يمكن اضافتها , عموماً هذا هو الموضوع ببساطه , مفتاح يضاف الى الريجيستري وبه مسار لبرنامج معين , يعمل هذا البرنامج عندما يتم اختيار العنصر من القائمة , الان سنقوم بعمل داله تقوم بادراج المفتاح في الريجيستري .
Add Item Method
 
الداله لها معاملان title وهو نص العنصر الذي سيظهر في القائمة , و appl وهو مسار او مكان البرنامج على الحاسب , فتقوم الداله بعمل مفتاح جديد باسم العنصر , ثم وضع مسار البرنامج في القيمه default حيث ان "" تمثل القيمة الافتراضيه default .

بإفتراض اننا نريد تشغيل البرنامج الحالي , او بمعنى اوضح نفس البرنامج الذي يقوم باضافة المفتاح سيقوم المفتاح بتشغيل عند اختياره - وهذا هو المنطقي -  , فسوف ننفذ الكود التالي  
Set the Current Application
 
حيث أن Application.ExecutablePath ترجع مسار البرنامج الحالي , وبالتالي سيظهر العنصر في القائمة الخاصة بالمجلدات , وعند اختياره سيعمل نفس البرنامج الذي قمت باضافة المفتاح من خلاله .
استخراج مسار المجلد  
ويمكنك ايضاً استخراج مسار المجلد الذي تم اختيار العنصر من قائمته من خلال كود بسيط , حيث ان الداله Environment.GetCommandLineArgs() تحتوي على مصفوفه بها المتغيرات الخاصه بالبرنامج , دائماً ما يكون المتغير الاول هو مسار البرنامج , والثاني - ان وجد - يكون مسار المجلد او الملف الذي تم تشغيل البرنامج من خلاله , فيمكنك استخلاص مسار الفولدر في حدث Form_Load من خلال الكود التالي  
Extract the Folder
ختـــام
هذا بإختصار كيفيه اضافة عنصر الى القائمة المنسدله للمجلدات , وتتشابه الى حد كبير طريقة الملفات مع اختلاف المفتاح الخاص بكل منهم في الريجيستري , وربما تواجه من يستخدم ويندوز 7 مشاكل مع الريجيستري , حيث هذا النظام حجم الى حد كبير الوصول الى الريجيستري , وحاولنا تفادي ذلك بالعمل على Current User Section , ونتمنى أن تكون المشكله انتهت , واتمنى ان اكون قد وفقت في عرض الموضوع .
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-09-05 6:12 AM)
مشاهده: 1533 | وسمات: menu, folder menu, regisry, C# | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz