1. این پایگاه به ثبت ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ایران رسیده است.

    مهمان عزیز سپاس بابت بازدید شما از تالار گفتگوی دهه هفتادی ها.

    عضویت در انجمن رایگان بوده و برای عموم باز میباشد . با صرف 30 ثانیه یکی از اعضای دهه هفتادی ها شوید .

توابع ویژوال بیسیک 6

شروع موضوع توسط Sara skelet ‏Jan 4, 2012 در انجمن برنامه نویسی و طراحی سایت

  1. توابع ویژوال بیسیک 6
    توابع API چیست؟

    API مخفف Application Programming Interface است و به معنای رابط برنامه نویسی کاربردی است.API مجموعه ای از توابع برنامه نویسی است که هم مورد استفاده سیستم عامل واقع می سود و هم یک برنامه کاربردی می تواند از آن استفاده کند. توابع API در قالب فایل های DLL عرضه میشود. در سیستم عامل ویندوز فایل هایی مثل : Kernel32.dll ، gdi32.dll ، user32.dll و چندین فایل دیگر شامل این توابع هستند. این توابع معمولاً با زبان برنامه نویسی C نوشته شده اند. ولی در زبان های دیگر مثل دلفی ، ویژوال سی پلاس پلاس و ویژوال بیسیک هم می توان از آنها استفاده کرد.

    توابع API بر دو دسته اند :

    16 بیتی : این توابع در ویندوز های قدیمی کاربرد داشته اند و در سیستم ها ی کنونی به تدریج جای خود را از دست داده اند. و فقط برای حفظ سازگاری ویندوز با برنامه های قدیمی این توابع هنوز هم با ویندوز عرضه می شوند. توابع 16 بیتی ویندوز در حدود 730 عدد می باشد.

    32 بیتی : این توابع نمونه های پیشرفته تر توابع قدیمی 32 بیتی هستند. همانطور که گفته شد توابع 16 بیتی قدیمی شده اند و نمونه های 32 بیتی اکثر آنها در ویندوز موجود است. برای آنکه این گونه توابع با نمونه های 16 بیتی شان اشتباه گرفته نشود در انتهای آنها یک کاراکتر A وجود دارد که نشان دهندهء 32 بیتی بودن آنهاست. توابع 32 بیتی بالغ در 6500 عدد هستند.
    -=-=-=-=-=-=-=


    نحوه به کار بردن توابع API در ویژوال بیسیک


    برای استفاده از توابع API در وی بی ابتدا باید آنها را در وی بی تعریف نمود که اصطلاحاً به آن Declare گفته می شود. صورت یک Declare به این صورت است

    Declare Function FnName Lib LibName [Alias RealName] (Parameters )As ReturnType




    FnName : نام تابع ( نامی که قرار است در برنامه استفاده شود ).

    LibNam : نام کتابخانه ( فایل با پسوند DLL ).

    RealName : نام واقعی تایع در فایل کتابخانه. اگر نام واقعی تابع و نامی که در برنامه استفاده می شود یکی باشند آنگاه نیازی به این قسمت نیست .

    Parameters : پارامتر های تابع.

    ReturnType : نوعی که تابع قرار است بر گرداند.

    توجه : در نوشتن نام واقعی تابع ( یا اگر نام واقعی و مجازی تابع یکی باشد ، نام مجازی آن ) بزرگ و کوچک بودن حروف اهمیت دارد .
    توابع کار با آیکن

    Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long

    اين تابع فضاي اشغال شده توسط يک آيکون را آزاد مي کند و در واقع آيکون مزبور را آزاد مي کند
    اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود

    hIcon : يک اشاره گر از آيکون مورد نظر

    *-*-

    Private Declare Function DrawIcon Lib "user32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

    اين تابع براي ترسيم يک آيکون روي يک کنترل گرافيکي (داراي hdc) به کار مي رود

    hdc : هندل بافت کنترل گرافيکي که آيکون بايد روي آن ترسيم شود
    x : جايي که بايد ترسيم آيکون از آنجا شروع شود
    y : جايي که بايد ترسيم ايکون از آنجا شروع شود
    hIcon : اشاره گر آيکون مورد نظر

    */*

    Private Declare Function DuplicateIcon Lib "shell32.dll" (ByVal hInst As Long, ByVal hIcon As Long) As Long

    اين تابع يک اشاره گر از يک آيکون مي گيرد و يک اشاره گر جديد از آن بر مي گرداند و در واقع يک کپي از آن تهيه مي کند
    اگر تابع با خطايي مواجه شود مقدار بازگشتي صفر و در غير اينصورت مقدار بازگشتي يک اشاره گر کپي آيکون مورد نظر خواهد بود

    hInst : اين متغير مورد استفاده قرار نمي گيرد. مي توانيد مقدار آن را برابر صفر قرار دهيد
    hIcon : يک اشاره گر از آيکون مبدا

    *-*-*-

    Private Declare Function ExtractIcon Lib "shell32.dll" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long


    اين تابع يک آيکون را از يک فايل محتوي آيکون (exe,dll,ocx,ico) استخراج مي کند و يک اشاره گر از آن را بر مي گرداند
    اگر تابع به علت عدم وجود فايل مورد نظر دچار خطا شود مقدار يک و اگر شماره آيکون مورن نظر در فايل وجود نداشته باشد عدد صفر را بر مي گرداند و اگر کار خود را با موفقيت انجام دهد مقدار بر گشتي يا اشاره گر از آيکون مورد نظر خواهد بود

    hInst : هندل پنجره اي که تابع تحت آن اجرا مي شود
    lpszExeFileName : نام فايل مورد نظر
    nIconIndex : شماره آيکون مورد نظر
    توابع کار با امنیت



    Private Declare Function DecryptFileA Lib "advapi32.dll" (ByVal lpFileName As String, ByVal dwReserved As Long) As Boolean

    اين تابع يک فايل را که با تابع EncryptFileA رمز گذاري شده است را به حالت عادي بر مي گرداند
    اين تابع بر روي سيستم فايلي ntfs کار مي کند و کاربر بايد اختيارات لازم براي اين کار را داشته باشد

    lpFileName : نام فايل رمز گذاري شده
    dwReserved : مقدار اين متغير صفر است

    /*/*//*/*

    Private Declare Function EncryptFileA Lib "advapi32.dll" (ByVal lpFileName As String) As Boolean


    اين تابع يک فايل را رمز گذاري مي کند. فايل رمز گذاري شده را مي توان با تابع DecryptFileA به حالت عادي باز گرداند
    اين تابع بر روي سيستم فايلي ntfs کار مي کند و کاربر بايد اختيارات لازم براي اين کار را داشته باشد

    lpFileName : نام فايل رمز گذاري شده


    *-*

    Private Declare Function PwdChangePasswordA Lib "mpr.exe" (ByVal lpcRegkeyname As String, ByVal hwnd As Long , ByVal uiReserved1 As Long , ByVal uiReserved2 As Long ) As Long


    اين تابع کلمه عبور ورودي ويندوز ، ScreenSaver و کلمه عبور جاهاي ديگر ويندوز را تغيير مي دهد.
    بعد از اجراي اين تابع يک MsgBox نشان داده مي شود و از کار بر خواسته مي شود تا تغيير کلمه را تغيير دهد.
    اگر مقدار برگشتي تابع صفر باشد به منزله عدم تاييد کاربر است در غير اينصورت کاربر کلمه عبور را تغيير داده است.

    lpcRegkeyname : اين متغير نام کليد رجيستري کلمه عبور مورد نظر است
    hwnd : هندل پنجره اي که تابع تحت آن اجرا مي شود
    uiReserved1 : مقدار اين متغير 0 است
    uiReserved2 : مقدار اين متغير 0 است

    *-*-*-*--

    Private Declare Function VerifyScreenSavePwd Lib "password.cpl" (ByVal hwnd As Long) As Long

    اين تابع پنجره دريافت کلمه عبور محافظ صفحه نمايش را نشان مي دهد
    اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود

    hwnd : هندل پنجره اي که تابع تحت آن اجرا مي شود
     
    ahriman و Admin از این پست تشکر کرده اند.
  2. vandad

    vandad

    1,533
    1,871
    347
  3. fargol

    fargol

    571
    589
    230
    خوب شد گفتی:roflmao
     
  4. sara

    sara ♥ مـــلـــکــه انـجـمـن ♥

    3,121
    7,347
    907
    چقد من از این برنامه بدم میاد
     
  5. Admin

    Admin غواصی فقط تو چشات عضو کادر مدیریت مدیر کل سایت

    12,516
    24,657
    62,907
    فقط سی شارپ
     
  6. sara

    sara ♥ مـــلـــکــه انـجـمـن ♥

    3,121
    7,347
    907
  7. Admin

    Admin غواصی فقط تو چشات عضو کادر مدیریت مدیر کل سایت

    12,516
    24,657
    62,907
    C++ حال نمیده
    C# زیبا راحت قدرتمند
     
  8. sara

    sara ♥ مـــلـــکــه انـجـمـن ♥

    3,121
    7,347
    907
    راستش استاد سی شارپ ما انقد مذخرف بود من بدم اومده اصن حالیش نبود از رو جزوه میخوند درس میداد!!
     
  9. Admin

    Admin غواصی فقط تو چشات عضو کادر مدیریت مدیر کل سایت

    12,516
    24,657
    62,907
    من یه استاد دارم
    ترم قبل باهاش وی بی خوندم ازش خوشم اومد
    این ترم باهاش شبکه،کارگاه شبکه،مباحث ویژه(C#)،برنامه نویسی تحت وب(C#) برداشتم
    نصف درسامو با این میخونم