توابع API در واقع توابع داخلی ویندوز هستند.به وسیله توابع API ویندوز ما میتونیم هرکاری که در ویندوز قابل انجام است در ویژوال بیسیک و در برنامه های خودمون انجام دهیم.کارهایی که ویندوز انجام میده مثلا فایل های صوتی با فرمت های گوناگون رو پخش میکنه - باعث میشه که ما به اینترنت متصل بشیم باعث میشه که کارهای گرافیکی قدرتمند بکنیم - باعث میشه که فایلها رو فشره کنیم و هزاران کار دیگه. تمام روتین های API ویندوز در درون کتابخانه های با لینک دینامیک یا (DLL (Dynamic Link Library قرار دارند. چون این فایل ها به همراه ویندوز عرضه و نصب میشوند در تمامی رایانه هایی که با سیستم عامل ویندوز کار میکنند وجود دارند .
از جمله DLL های مهم و پرکاربرد ویندوز میتوان به DLL های زیر اشاره کرد:
User32.DLL
GDI32.DLL
Kernel32.DLL
ما برای استفاده از توابع API باید آنها را فراخوانی کنیم.برای فراخوانی یک روتین API ازدستور Declare استفاده میکنیم که شکل کلی این دستور به صورت زیر است:
Private Declare [Sub or Function] procName Lib "LibraryName" [Alias "asAlias"] 'xxx
در فراخوانی یک تابع API ابتدا آن را به صورت Private یا Public بعد Declare مینویسیم سپس میگوییم که ساب روتین(Sub) باشد یا فانکشن (Function) . کلمه procName نام تابعی است که ما میخواهیم از آن استفاده کنیم و LibraryName نام کتابخانه DLL ای است که این تابع در آن کتابخانه است.
شما برای مشاهده توابع API ویندوز میتونین با رفتن به Start و AllPrograms و Microsof VB6 و بعد رفتن به شاخه Microsof VB6 Tools و اجرا کردن برنامه API Viewer توابع API ویندوز رو مشاهده کنین.
برای اینکه با توابع API بیشتر آشنا بشین یک مثال ساده و زیبا براتون میزنم.
نمونه برنامه ۱: یک پروژه استاندارد باز کنید و روی فرم خودتون یک عدد دکمه فرمان(Command1) قرار بدین سپس از منوی View در ویژوال بیسیک گزینه Code را بزنید با این کار پنجره کدها باز میشود .در قسمت General پنجره کد دستورات زیر را بنویسید:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
به علت اینکه مرورگر اینترنت شما نمیتونه کل این تابع رو در یک خط نمایش بده ممکنه که ۲ یا ۳ خط بشه اگه مشکلی پیش اومد بگین تا سورس این برنامه رو بزارم.
بعد از پنجره کدها خارج شوید و روی دکمه فرمانی که روی فرم گذاشتین دوبار کلیک کنید و سپس کدهای زیر رو بنویسید:
Private Sub Command1_Click
MciSendString "Set CDAudio Door Open" ,0 ,0 ,0
End Sub
بعد برنامه رو اجرا کنین و روی دکمه فرمان خودتون کلیک کنید تا نتیجه کار رو ببنید . بعد از کلیک شدن دکمه فرمان باید سی دی رام شما بیرون بیاد.اگر مشگلی پیش اومد بگو تا راهنماییت کنم.
شما میتونین برای بستن در سی دی رام خودتون در روال کلیک دکمه فرمان به جای عبارت Open عبارت Closed رو بنویسین.
چطور بود حالی بردینا.
API های بسیار زیادی وجود داره که اگر یه سایت بخواد دونه دونه توضیحشون بده فقط بیشتر از یک ماه تایپ کنه . اما کلیه API های ویندوز به دردخور نیستند و باید دروشون ریخت و فقط تعداد اندکی از آنها برای استفاده در ویژوال بیسیک به صرفه است
اسم شرط با خودشه و همون طور که از اسمش معلومه باعث محدودیت های میشود. مثلا ما به کمک آنها میتوانیم دیکشنری های قدرتمند و پر سرعت بسازیم یا برای برنامه خود پسورد و یوزر قرار بدیم و خیلی کارهای دیگه که در این مقاله نمیگنجه.
انواع دستورات شرطی عبارتند از :
If ...............end if , If ..............Else ................. end if , Select Case .............End Select
, غیره که اینهایی را که نام برده شد پرکاربرد ترین و مهمترین آنها هستند.
الف- IF ....End IF :
دستور شرطی If ... End if که شکل کلی آن به صورت زیر است:
then شرط If
دستور یا دستورات
End If
مثال۱ :
if Ali = 123456789 then
Ali = 0
end if
در این مثال هر وقت مقدار متغیر Ali برابر با ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ کند.
ب - If ... Else ... End If :
این نوع دستور شرطی همانند دستور شرطی الف است فقط با این تفاوت که با نوشتن کلمه Else (به معنی در غیر این صورت ) ما میتوانیم در صورت تحقق نیافتن شرطمان کار دیگری انجام دهیم.
شکل کلی دستور:
Then شرط If
دستور یا دستورات
Else
دستور یا دستورات
End If
مثال۲ -
If Ali = 123456789 then
Ali = 0
Else
Ali = 10
End if
که در مثال بالا ما میگوییم که اگر متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ شد متغیر را برار ۰ قرار دهد و در غیر این صورت ( هر وقت متغیر Ali برابر ۱۲۳۴۵۶۷۸۹ نشد) مقدار متغیر را برابر ۱۰ کند.
امیدوارم با توضیحات نه چندان خوب من تا اینجا خوب پیش رفته باشید. راستی یه جوک یادم اومد:
یه روز یه ترکه میره ماه عسل زنشو یادش میره با خودش ببره.