سه‌شنبه، مهر ۲۹، ۱۳۸۲

Shell نرم افزاری است که به کاربران ويندوز اجازه اجرا ، کنترل يا انجام تغييرات روی فايلها را می دهد. رابط Win32 ويندوز (و البته به تبع آن رابط Win64) قابليت توسعه پذيری دارد. به اين مفهوم که شما می توانيد نرم افزاری بنويسيد که قابليتهای معمول Shell را توسعه دهد. مثلا وقتی WinZip روی دستگاه شما نصب می شود، پس از آن هرگاه روی فايلی رايت کليک کنيد در منوی Popup ظاهر شده چند گزينه مخصوص WinZip را مشاهده خواهيد کرد. شما می توانيد تا آنجا که ذهنتان اجازه می دهد قابليت های منحصر بفرد خلق کنيد و در ويندوز به خلق الله عرضه کنيد. اين يکی از جنبه های زيبا و صد البته قابل رقابت ويندوز است. به نرم افزاری که قابليت Shell را توسعه دهد Shell Extension می گويند. Shell Extension ها بر دو دسته اند:
دسته اول Extension هايی هستند که شما روی انواع خاصی از فايل تعريف می کنيد. دسته دوم Extention هايی هستند که روی عمليات قابل انجام روی فايلها مثل Copy و Delete تاثير می گذارند.
دسته اول شامل اين Shell Extension هاست:
Context menu handlers ، اين دسته به منوی رايت کليک روی فايلهايی از نوع خاص اضافه می شوند تا قابليت خاصی را به کاربر عرضه کنند.
Icon handlers که کنترل کاملی برروی نحوه نمايش آيکانهای برنامه ها يا فايلهايی از نوع خاص دارند.
Data handlers که اجازه افزودن اطلاعات کمکی به مشخصات فايل کپی شده به کليپ بورد ، برای اطلاع دادن به نرم افزارهای مقصد (در عمليات Drag n Drop) به شما می دهد.
Drop Handlers ، که به شما اجازه می دهند يک فايل از نوع خاص را (مثلا Zip) به مقصدی برای عمليات Drag and Drop تبديل کنيد. نظير کاری که WinZip با فايلهای زيپ شده می کند. در حالت عادی فايلها نمی توانند مقصد Drag and Drop باشند.
Property sheet handlers، که بسيار هم محبوب هستند به شما اجازه می دهند برای نوع خاصی از فايل يک صفحه جديد به صفحات Property آن اضافه کنيد. کاری که مثلا Craclock با فايلها می کند.
دسته دوم شامل اين Shell Extension هاست:
Copy hook handlers، که درست قبل از عملياتی نظير کپی ، حذف ، انتقال يا تغيير نام فايل توسط ويندوز صدا زده می شوند و شما می توانيد طبق منطق خودتان اجازه انجام آن عمليات را بدهيد يا از آن جلوگيری کنيد.
Drag and drop handlers ، که منوهای شناوری هستند که ويندوز آنها را در يک عمليات Drag and drop پس از Drop کردن فايل به مکان جديد صدا می زند و کاربر می تواند از بين گزينه های آنها عملکرد دلخواه خويش را انتخاب کند.
Shell Extension ها نرم افزارهايی هستند که از مدل COM تبعيت می کنند. هر Shell Extension در شکل نهايی خود يک OLE in-process server DLL است.
اگر قصد برنامه نويسی در اين زمينه با دلفی را داريد به Shell Plus هم نگاهی بياندازيد. اين نرم افزار رابط سهل الوصول و آسانی برای برنامه نويسی Shell Extension ها است.