API ویندوز چیست و چه کاربردی دارد ؟
ویندوز به عنوان یک سیستم عامل نیازمند ارتباط با برنامههای مختلف جهت ارسال پیام به آنها و همچنین دریافت دستورات و پیامها از این برنامهها است. به همین دلیل لازم است تا یک استاندارد مشخص برای این کار توسعه پیدا کند.
سیستم API ویندوز، مجموعهی بزرگی از دستورات و عملکردها است که کار ارتباط بخشهای مختلف سیستمعامل با هم و همچنین برنامهها را عملی میکند.
برخی از کارکردهای API ویندوز
چند نمونه از عملکردهای API ویندوز را در ادامه مشاهده میکنید:
- هنگامی که یک برنامه میخواهد پنجرهای جدید ایجاد کند و محتوای دلخواه خود را در آن نمایش دهد
- هنگامی که یک برنامه میخواهد از حرکت ماوس و کلیدهای فشرده شده روی صفحه کلید آگاهی پیدا کند
- هنگامی که ویندوز در حال خاموش شدن است و باید به تک تک برنامهها اطلاع دهد تا آنها خود را ببندند
- هنگامی که یک برنامه میخواهد محتویات یک شاخه از دیسک سخت را جستجو کند و یا یک فایل را روی دیسک سخت ذخیره کند
- هنگامی که برنامهای میخواهد از طریق درگاه USB به یک سختافزار خارجی متصل شود
تفاوت و تنوع دستورات API ویندوز
تعداد و تنوع فعالیتهایی که از طریق Windows API به انجام میرسد بسیار گسترده است و امکان فهرست کردن تمامی آنها در این بخش وجود ندارد. به علاوه نسخههای مختلف ویندوز هر یک دارای دستورات جدیدی هستند که برنامهها میتوانند از آنها استفاده کنند. علت اینکه برخی از برنامهها به نگارش خاصی از ویندوز نیاز دارند هم همین موضوع است. زیرا در نسخههای قدیمیتر، دستورات API مورد نظر آنها وجود ندارد یا عملکرد متفاوتی دارد.
علت وجود API برای انجام فعالیتها
شاید تصور کنید که برنامهها به تنهایی و بدون استفاده از API هم میتوانند بسیاری از فعالیتها را روی سیستم به انجام برسانند. این موضوع درست است ولی با توسعه پیدا کردن ویندوز، محدودیتهای بیشتری روی فعالیتهای قابل انجام توسط برنامهها ایجاد میشود. این کار برای حفظ امنیت و پایداری و کنترل دسترسی کاربران ویندوز ضروری است.
برای مثال اگر هر برنامه بخواهد به صورت مجزا، اطلاعات را مستقیم روی دیسک سخت شما ذخیره و بازیابی کند، کوچکترین اشتباه ممکن است به پاک شدن حجم بسیار زیادی از اطلاعات شخصی شما منجر شود یا ممکن است یک کاربر که از نرمافزاری استفاده میکند اجازه نداشته باشد تا به فایلهای کاربران دیگر در ویندوز دسترسی پیدا کند، با محدود کردن دسترسی از طریق API ویندوز، هیچ برنامهای به هیچ روشی نخواهد توانست به فایلهای غیرمجاز کاربر فعلی دسترسی پیدا کند.
علاوه بر این، برخی از عملکردهای ویندوز، پیچیده و مربوط به سیستم عامل هستند. برای مثال نمایش پنجرهها در ویندوز و فعالیتهایی که میتوان روی این پنجرههای گرافیکی انجام داد، میبایست یکپارچه و منظم و یک شکل باشند. امکان اینکه هر برنامه برای خود بخشی از صفحهی نمایش را تحت کنترل بگیرد و هر چه مایل است در صفحه نمایش نشان دهد، وجود ندارد. البته بازیهای کامپیوتری، این قابلیت را دارند که به طول کامل صفحه را در اختیار بگیرند و محتوای گرافیکی خود را در تمام فضای نمایشگر نشان بدهند. حتی این گونه فعالیتها هم توسط ویندوز مدیریت و کنترل میشود تا برنامهها امکان فعالیت مسالمتآمیز و بدون مشکل در کنار یکدیگر را داشته باشند.
با حضور و کنترل ویندوز روی فعالیت برنامهها، اگر یک برنامه به درستی عمل نکند و به مشکلی بر بخورد، تنها همان برنامه از فرآیند اجرا خارج میشود و مشکلی برای سایر برنامهها و عملکرد کلی سیستم پیش نمیآید.
استفاده و عملکرد API ویندوز چگونه است ؟
دستورات API ویندوز داخل دهها فایل dll یا Dynamic Link Library که اغلب در شاخهی system32 ویندوز هستند، پیادهسازی شده است. برنامهها برای اینکه بتوانند از این دستورات استفاده کنند، میبایست به صورت ایستا یا پویا، این کتابخانهها را در حافظه خود بارگزاری کنند.
پس از بارگزاری این کتابخانهها در فضای حافظهی هر برنامه، میتوان از توابع تعریف شده در آنها مثل توابع معمول نوشته شده در هستهی اصلی برنامه استفاده نمود. هر تابع یک یا چند ورودی و یک خروجی دارد.
برای مثال تابع CreateWindowEx کار ایجاد پنجره را بر عهده دارد یا تابع SendMessage وظیفه دارد تا یک پیام را برای یک برنامه ارسال نماید. برنامهها در ویندوز به صورت معمول هیچ فعالیتی ندارند و منتظر میمانند تا یک پیام به آنها برسد و آن را پردازش کنند. یک پیام میتواند شامل دستورات متعددی باشد. مثلا هر حرکت ماوس یا هر فشار روی دکمه صفحه کلید، یک پیام است.
به همین دلیل شما اگر دهها برنامه هم روی ویندوز در حال اجرا داشته باشید، مصرف CPU شما از چند درصد فراتر نمیرود. زیرا اغلب برنامهها در حال سکون و منتظر دریافت پیام هستند.
فوق العاده توضیح دادید. دانستن یک مطلب یک موضوع است و نحوه انتقال آن مساله دیگری است که شما بخوبی انجام دادید. متشکرم.