الموضوع السابق   الموضوع التالي 

الدخول إلى قائمة Windows

Function: AddShellMenuItem

الغرض
إضافة أوامر إلى قائمة النظام التي تظهر عند النقر بالزر الأيمن للفأرة على أحد ملفات.


الصيغة

function AddShellMenuItem(TypeExt, ItemName, Caption, Command, Parameters: string; Overwrite: Boolean = False): Boolean;


الوسائط (Parameters)

TypeExt الامتداد الذي يحدد نوع الملف الذي تريد أن يظهر الأمر في قائمة النظام عند النقر عليه.
ItemName اسم البند الذي سيتم تسجيله في سجل النظام.
Caption عنوان البند الذي سيظهر في قائمة النظام.
Command الأمر المرتبط بالبند، و الذي سيتم تنفيذه عند النقر على الأمر.
Parameters وسائط سطر الأوامر (إذا كانت هناك وسائط).
Overwrite تحديد ما إذا سيتم الكتابة فوق البيانات السابقة (في سجل النظام) إذا كان هناك من قبل أمر قائمة بنفس الاسم.

الشرح
نلاحظ أننا عندما نقوم بتركيب بعض البرامج (برامج مسح الفيروسات مثلاً) يظهر في قائمة النظام - التي تظهر عند النقر على ملف أو رمز بالزر الأيمن - أمر واحد أو أكثر له علاقة بذلك البرنامج الذي قمنا بتركيبه. تقوم هذه الدالة بنفس العمل، حيث تضيف أمراً إلى القائمة التي تظهر عند النقر بالزر الأيمن على نوع معين من الملفات
* الامتداد (TypeExt) الذي يحدد نوع الملف يمكن أن يكون من غير النقطة (مثلاً "txt") أو مع النقطة (مثلاً ".txt"). الجدير بالملاحظة هنا أن هذه الدالة لا تقوم بتسجيل نوع ملف جديد في سجل النظام، بمعنى أن الامتداد (الذي يحدد نوع الملف) يجب أن يكون موجوداً و مسجلاً مسبقاً في النظام و إلا فإن الدالة لن تقوم بأي شيء و تعيد False.
للقيام بتسجيل توع ملف انظر موضوع تسجيل نوع ملف (الدالة RegisterFileType).
* البارامتر ItemName يمكن أن يكون بالعربية أو الإنجليزية (يستحسن بالإنجليزية) و لكن دون فراغات، مثلاً OpenWithMyEdit أو فتح_في_محرري. ينبغي أن يكون هذا الاسم فريداً (في سجل النظام) و يستحسن أن يدل على الأمر المرتبط به.
* البارامتر Caption هو النص الذي سيراه المستخدم ضمن القائمة عند النقر بالزر الأيمن على الملف أو الرمز، و يمكن أن يكون بالعربية أو الإنجليزية.
* البارامتر Command مهم جداً (بالإضافة إلى البارامتر Parameters) لأنه هو ما يحدد الإجراء الذي سيتم تنفيذه عند النقر على الأمر في القائمة. عادةً هذا البارامتر عبارة عن المسار الكامل للملف التنفيذي (EXE File) للتطبيق الذي سيتعامل مع هذا الأمر، مثلاً "C:\MyApps\TextEditor\TxtEdit.exe".
* البارامتر Parameters يحدد وسائط سطر الأوامر (Command Line Arguements) - إذا كانت لازمة - و التي يجب أن يعالجها التطبيق المحدد في البارامتر Command لتحديد كيفية معالجة الأمر. هذا البارامتر يمكن أن يكون نصاً فارغاً (Empty String) إذا كان تنفيذ الأمر لا يحتاج إلى بارامترات. لكن في أغلب الأحيان ستكون في حاجة إلى تمرير بارامتر واحد هو %1 الذي يمثل الملف الذي تم النقر عليه. هذه الطريقة هي من تصميم النظام Windows حيث يقوم النظام - عند النقر على الملف - بتمرير المسار الكامل لذلك الملف بدل الرمز %1. بالإضافة إلى ذلك يمكن أن يحتوي البارامتر Parameters على أية بارامترات أو مفاتيح (Switches) يحتاجها برنامجك لتنفيذ الأمر.

ملاحظة مهمة
إذا تم تمرير وسائط في البارامتر Parameters فإن برنامجك هو المسؤول عن معالجة تلك الوسائط. لمعرفة كيفية التعامل مع وسائط سطر الأوامر في دلفي انظر المواضيع التالية في تعليمات دلفي:
* الدالة ParamCount.
* الدالة ParamStr.
* الدالة FindCmdLineSwitch.

* البارامتر Overwrite يجب استعماله بحذر. القيمة True تعني أنه في حالة وجود أمر بالاسم ItemName مرتبط بالنوع TypeExt فإن الدالة ستقوم بتعديل ذلك الأمر بحيث يصبح عنوانه في القائمة حسب النص Caption و سيتولى تنفيذه التطبيق المحدد في البارامتر Command. أما إذا كانت قيمته False فإن الدالة لن تقوم بأي إجراء في حالة وجود أمر بنفس الاسم سابقاً.

إذا نجحت الدالة في تسجيل الأمر فإنها تعيد True، و إذا فشلت لأي سبب فإنها تعيد False.


 أعلى الصفحة
 الموضوع السابق   الموضوع التالي