این دوره به دلیل عدم تایید توسط کمیته ارزیابی دانشجویار، حذف شده است.

توابع API چیست؟

API مخفف Application Programming Interface و به معنی رابط برنامه نویسی کاربردی میباشد و شامل توابعی میباشد که مورد استفاده سیستم عامل و برنامه ها قرار میگیرد. توابع API در قالب فایل های dll عرضه میشوند. این توابع عموما در زبان C نوشته میشود اما در سایر زبان ها از جمله C#نیز قابل استفاده هستند.
در سیستم عامل ویندوز نیز فایلهایی مثل Kernerl32.dll و GDI32.dll و User32.dll وجود دارند که سیستم عامل ویندوز برای انجام دادن کارها از توابع موجود در آن استفاده میکند. با استفاده از روتین های API ویندوز اکثر کارهایی که در ویندوز قابل انجام است در سی شارپ نیز قابل انجام خواهد بود.

توابع API در دو نوع ۱۶ بیتی و ۳۲ بیتی هستند.
توابع ۱۶ بیتی مربوط به سیستم عامل های ۱۶ بیتی هستن که تعداد اونها در حدود ۷۳۰ عدد و فقط برای حفظ سازگاری با برنامه های قدیمی در سیستم عامل های ویندوز ۳۲ بیتی وجود دارن.
توابع ۳۲ بیتی که تعداد اونا بیش از ۶۵۰۰ عدد هست، با آمدن ویندوز های ۳۲ بیتی عرضه شدن که نمونه پیشرفته توابع ۱۶ بیتی هست. برای اینکه توابع ۱۶ بیتی و ۳۲ بیتی از همدیگر قابل تشخیص باشند در انتهای نام توابع ۳۲ بیتی کلمه A قرار دارد که نشون میده این تابع ۳۲ بیتی است. مانند GetClassNameA

همچنین وجود عدد ۳۲ در پایان نام DLL های User32.dll و GDI32.dll و Kernel32.dll نشون میده که این فایل مربوط به ویندوز های ۳۲ بیتی است.
ابزاری به نام API Text Viewer همراه با نصب ویژال بیسیک در سیستم شما نصب میشود که بوسیله آن میتوان اعلان های API، ثابت ها و انواع داده ای موجود رو مشاهده و جستجو کرد.

دانلود این فیلم آموزشی در ادامه مطلب…

DLL چیست؟
در حقیقت DLLها هم مانند API ابزاری هستند که شما از آنها استفاده کرده اید ولی شاید نمیدانستید. اگر نگاهی به دایرکتوری های Windows\System و Windows\System32 و یا خود دایرکتوری ویندوز بیاندازید تعداد زیادی از فایل های DLL را می یابید.
DLL یا کتابخانه پیوندی پویا می باشد که می تواند شامل انواع داده و یا کد باشد. درون DLL می توان انواعی از داده ها همانند کد، تصویر،صوت و …. را قرار داد.
نکته جالب فایل های DLL خاصیت مستقل از زبان برنامه نویسی این فایل ها می باشد. یعنی اگر DLL بااستفاده از Delphi ایجاد شده باشد می توان در Visual Basic یا Visual C++ از آن استفاده کرد.
نکته دیگر DLLها، صرفه جویی در مصرف حافظه می باشدکه یه همین دلیل نام Dynamic را با خود به همراه دارند . در واقع هر قسمت از DLL که فراخوانی میشود همان قسمت به حافظه بار میشودو در صورت عدم نیاز نیز از حافظه خارج می شود.
در واقع دلایل استفاده از DLLها را می توان موارد زیر نام برد:
۱-توانایی اشتراک کردن کد بین چند برنامه و حتی خود ویندوز
۲-استفاده مجدد از کدهای نوشته شده
۳-استفاده بهینه از منابع ویندوز و منابع سیستمی
۴-جدا کردن کدهای مختلف

لازم به ذکر است که DLLها را می توان با زبان های مانند Delphi و یا Visual C++ تولید کرد.
حال مطمئنا می توانید جواب این سوال را که APIها در کجا هستند بدهید. بله APIها در فایلهای DLL ویندوز قرار دارند
مهمترین DLLها که بیشترین APIها را در خود جای داده اند عبارتند از Kernel32.DLL و User32.DLL و Shell32.DLL و …

در این آموزش شما با چند مثال عملی کار با توابع API آشنا می شوید.

یاد می گیرید که چگونه مسر حرکت مواس را محدود کنید(ClipCurser)

یاد میگیرید که چگونه دکمه استارت را مخفی کنید

یاد می گیرید که چگونه TaskBar  را مخفی کنید

یاد می گیرید که چگونه پنجره خاصی را به محض باز شدن ببندید

کار با تابع sendkey  را می آموزید

در این قسمت شما با چند مثال عملی کار با توابع API آشنا می شوید.

کار با تابع Beep را می آموزید,

کار با تابع MessageBeep را می آموزید,

کار با تابع FindWindow را می آموزید,(برای پیدا کردن هندل یک پنجره بر اساس متن عنوان)

کار با تابع sendkey را می آموزید,(برای ارسال کلید های صفحه کلید)

کار با تابع getWindowText را می آموزید,(برای دریافت متن عنوان یک پنجره)

کار با تابع setWindowText  را می آموزید,(برای تغییر عنوان پنجره ها , یعنی با باز شدن هر پنجره عنوان پنجره خودکار عوض شود)

کار با تابع animateWindow  را می آموزید,(برای باز کردن فرم ها با انیمیشن)

در ایین آموزش شما با چند مثال عملی کار با توابع API آشنا می شوید.

کار با کپچر کردن دسکتاپ را می آموزید

کار با تابع getDesktopرا می آموزید,(برای پیدا کردن هندل دسکتاپ )

کار با تابع FindWindow را می آموزید,(برای پیدا کردن هندل یک پنجره بر اساس متن عنوان)

کار با تابع sendkey را می آموزید,(برای ارسال کلید های صفحه کلید)

کار با تابع getWindowText را می آموزید,(برای دریافت متن عنوان یک پنجره)

کار با تابع setWindowText  را می آموزید,(برای تغییر عنوان پنجره ها , یعنی با باز شدن هر پنجره عنوان پنجره خودکار عوض شود)

کار با تابع animateWindow  را می آموزید,(برای باز کردن فرم ها با انیمیشن)