به دست آوردن زماني كه از روشن شدن سيستم گذشته است.

اين كار را به وسيله توابع api ويژوال بيسيك به صورت زير مي توان انجام داد:

ابتدا در قسمت general در پنجره كد نويسي تابع api زير را كپي مي كنيم

 ()"Private Declare Function GetTickCount& Lib "kernel32

حال يك تايمر و يك text box بر روي فرم ايجاد مي كنيم.

درقسمت load form كد Timer1.Interval = 50 و در قسمت تايمر كد زير را وارد ميكنيم.

Retval = GetTickCount&

Text1.Text = Str$(Retval / 60000) + " minutes"

باز و بسته كردن درب سي دي رام

براي اين كار ابتدا تابع زير را در قسمت general فرم كد در vb كپي كرده

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

حال سه command بر روي فرم ايجاد مي كنيم.

در command1 كد &mciSendString "set cdaudio door open wait", 0&, 0&,0 و در command2

كد &mciSendString "set cdaudio door closed wait", 0&, 0&,0 و در command3 كلمه end را تايپ مي كنيم

قفل كردن صفحه كليد و ماوس به مدت دلخواه

براي اين كار ابتدا تابع زير را در هدر قسمت كد برنامه قرار دهيد

Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

حال يك command ايجاد كرده و در قسمت رويداد كليك آن كد زير را وارد كنيد:

DoEvents

BlockInput True 'True=1

Sleep 10000

BlockInput False 'False=0

عدد جلوي sleep مدت زمان قفل بودن صفحه كليد و ماوس را نشان مي دهد.كه در اينجا به طور پيش فرض 10 ثانيه است.

task bar نمايش و عدم نمايش   

براي اين كار در ويژوال بيسيك يك ماژول ايجاد كرده(از منوي project-->add module) سپس كد زير را در ماژول وارد كنيد.

Option Explicit

Dim hwndl As Long

Public Const SWP_HIDEWINDOW = &H80

Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const SWP_SHOWWINDOW = &H40

در ادامه دو command در روي فرم ايجاد كرده و در قسمت رويداد كليك command اولي كد

hwndl = FindWindow("shell_traywnd", "")

SetWindowPos hwndl, 0, 0, 0, 0, 0, SWP_HIDEWINDOW

و در قسمت رويداد كليك command دوم كد زير را وارد كنيد.

hwndl = FindWindow("shell_traywnd","")

SetWindowPos hwndl, 0, 0, 0, 0, 0, SWP_SHOWWINDOW

تعيين مكان كرسر ماوس

براي اين كار تابع زير را در قسمت General فرم كد در ويژوال بيسيك بنويسيد.

Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

حال يك Command بر روي فرم ايجاد كرده و تابع را به صورت زير در داخل رخداد كليك Command فراخواني كنيد.

SetCursorPos 400, 500

اعداد 400 و 500 براي تعيين مختصات x,y كرسر مي باشد.

:تعريف توابع

توابع API را در vb مي توان به دو صورت private (خصوصي براي يك فرم) يا public (عمومي براي تمام فرم ها ) تعريف نمود.به مسيري كه در مطلب قبل گفته شد رجوع كرده وابزار api viewer را اجرا كنيد.دراين پنجره در قسمت declare scope دو گزينه public (عمومي براي تمام فرم ها ) و private (خصوصي براي يك فرم) وجود دارد.با انتخاب گزينه private و انتخاب تابع از قسمت available item در قسمت selected item تابع با پارامترهايش ظاهر شده و در ابتدا تابع كلمه private مشاهده ميشود.براي به كاربردن تابع محلي تابع را به وسيله دكمه copy داخل كليپ برد كپي كرده و در قسمت general قسمت بالايي فرم paste مي كنيم.توجه داشته باشيد كه در اين روش در هر فرمي كه بخواهيم از اين تابع استفاده كنيم بايد اين تابع را در قسمت بالاي آن فرم كپي كنيم.

اگر بخواهيم تابع را فقط يك بار تعريف كرده و در تمام فرم ها از آن استفاده كنيم آن را به صورت سراسري تعريف مي كنيم.براي اين كار كافي است در قسمت declare scope در ابزار api viewer گزينه public را انتخاب كنيم سپس تابع را از قسمت available item انتخاب كرده حال در قسمت selected item تابع با پارامترهايش ظاهر مي شود.تابع را در حافظه كپي مي كنيم.در ويژوال بيسيك از منوي برنامه project را باز كرده در اين منو با انتخاب add module يك ماژول ايچاد ميكنيم.حال در ماژول كلمه كليدي

Option Explicit را تايپ كرده و در مرحله بعد تابع داخل كليپ برد را بعد از كلمه كليدي Option Explicit پيست paste مي كنيم.

چيست؟API

API مخفف Application Programming Interface مي‌باشد كه به معناي رابط برنامه‌سازي كاربردي است.
نام API به توابعي اطلاق مي‌شود كه در فايلهاي مختلف ويندوز مانند Advapi32.dll ، User32dll ، Ole32.dll ، Kernel32.dll ، Winmm.dll ، Winspool.drr ، Gdi32.dll ، Mpr.dll ، Netapi32.dll ، Sheu32.dll ، Rasapi32.dll ، Version.dll ، Wsock32.dll ، Comdlg32.dll، وجود دارند.
ويندوز براي صدها كار مختلف خود از اين تابع‌ها استفاده مي‌كند و برنامه‌هاي كاربردي نيز به طور متعدد از اين توابع استفاده مي‌كنند. به عنوان مثال در زبان برنامه‌نويسي ويژوال بيسيك هر خط كد را كه تايپ مي‌‌كنيد و بعد برنامه را Run مي‌كنيد، توسط توابع API كنترل مي‌شوند. هنگامي كه دستور Form1.Print را براي نمايش يك پيغام بر روي فرم صادر مي‌كند، در واقع ويژوال بيسيك در پشت صحنه از تابع API، Textout جهت نمايش اين پيغام استفاده مي‌كند و يا هنگامي كه از توابع رسم بيضي استفاده مي‌كنيد، درحقيقت از تابع API، Elliptic استفاده مي‌شود.
و همچنين توابع ديگر، حركت ماوس، صفحه كليد، رنگها، دكمه‌ها، منوها و صدها عمليات ديگر.
 
علت استفاده از توابع API در برنامه‌نويسي
دلايل استفاده از توابع API در زبانهاي مختلف برنامه‌نويسي مي‌تواند اين باشد كه:
1.      APIتوابع  به دليل آنكه در فايلهاي dll هر سيستم عامل ويندوز مي‌باشد و در هر مكان مانند يكديگر مي‌باشند پس نيازي به ارائه آن فايل dll در نسخه برنامه نمي‌باشد و درنتيجه حجم نسخه كم مي‌شود و درضمن سنديت برنامه نيز بيشتر مي‌شود و مي‌توان گفت كه شما از منابع ويندوز به نحو احسن استفاده كرده‌ايد.
2.      نسخه‌هاي ويندوز به طور مداوم تغيير مي كند ولي به دليل آنكه سازندگان هميشه حالتي را در نظر مي‌‌گيرند كه نسخه‌هاي قبلي را نيز پشتيباني كند. درنتيجه اگر شما برنامه‌اي را به كمك توابع API بنويسيد با تغیير نسخه ويندوز نيازي به تغيیر جدي در توابع API نمي‌باشد.
3.      بيشتر زبانهاي برنامه‌نويسي (به‌خصوص زبانهاي تحت ويندوز كه خود به صورت پنهان از توابع API استفاده مي‌كنند، ممكن است به علت محدوديتهایي نتوانند تمام امكانات توابع را در اختيار قرا دهند. شما با دسترسي مستقيم به توابع مي‌توانيد از حداكثر قابليتهاي تابع استفاده كنيد.
4.      در بعضي از زبانهاي برنامه‌نويسي براي آنكه بتوان يك حالت را بوجود آورد و يا كار مشخصي را انجام داد، بايد كدهای زيادي بنويسيم و يا در زمان خطاگيري مدت زيادي را صرف كنيم و به طور حتم كاربر استفاده‌كننده از برنامه شما نيز بايد زمان بيشتري را براي گرفتن جواب صرف كند. اين موارد ذكر شده هر كدام به نوبه خود مي‌توانند از محبوبيت، قدرتمند و خوانابودن برنامه بكاهند. ولي توابع API به دليل آنكه روتين شده و از قبل نوشته شده مي‌باشند پس فقط كافيست تابع را فراخواني كنيم و به آن ورودي دهيم و خروجي مورد نظر خود را دريافت كنيم.
5.بيشتر توابع كارهايي را انجام مي‌دهند كه زبانهاي برنامه‌نويسي قادر به انجام آن نمي‌باشند.  به عنوان مثال به تابع SetlateradwindowAttributes مراجعه كنيد كه باعث مي‌‌شود يك پنجره (فرم و يا كنترلهاي داخل آن) و با يك رنگ مشخص در آنها به مقدار دلخواه به حالت شفاف و Transparent تبديل شوند. و يا توابع ديگر مانند StretchBlt , TransparentBlt , LokworkStation , TimGetTim , SHShutDownDialog و ...
6.      و چندين علت ديگر....