تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 3 123 آخرآخر
نمايش نتايج 1 به 10 از 28

نام تاپيک: آموزش توابع Api - کاربردی

  1. #1
    داره خودمونی میشه nk_hsn's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    37

    10 آموزش توابع Api - کاربردی

    سلام -
    یک برنامه نویس با استفاده از توابع و اشیا ذاتی VB تنها به بخشی از سیستم عامل دسترسی و کنترل خواهد داشت . اما همین برنامه نویس با استفاده از توابع APIویندوز (Application Programming Interface Windows) قادر به کنترل ریزترین بخش های سیستم عامل خواهد بود.
    من می خوام بخاطر آشنایی بیشتر دوستانم با این مباحث یکسری توابع کاربردی رو برای دوستان در این قسمت آموزش بدم . امیدوارم راضی بشید.

    مقدمه:

    درس اول)
    دستور Declare برای تعریف توابع DLL
    قبل از فرواخوانی یک تابع DLL باید اطلاعاتی راجع به مکان فایل DLL و آرگومانهای مورد نیاز آن تابع در اختیار VB قرار دهید برای این کار دو راه وجوددارد:
    1 - قرار دادن DLL در لیست References پروژه
    2 - استفاده از دستور Declare در یک ماژول
    ادامه دارد ...
    API شماره 1 - تغییر زبان صفحه کلید از انگلیسی به فارسی و بالعکس
    ادامه بحث یکشنبه 21/11/86
    Last edited by nk_hsn; 08-02-2008 at 13:29.

  2. #2
    پروفشنال MrJamshidy's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    سره جاش
    پست ها
    694

    پيش فرض

    در ابتدا ورود شما رو به P30World تبریک میگم
    و برای شما آرزوی موفقیت میکنم
    Last edited by MrJamshidy; 08-02-2008 at 18:43.

  3. #3
    داره خودمونی میشه nk_hsn's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    37

    1 درس دوم -

    تحلیل دستوارت :



    دستور Declare در حقیقت برای ویژوال بیسیک مشخص می کند که یک تابع DLL خاص را از کجا و چگونه می توانید فراخوانی کند. ساده ترین راه برای اضافه کردن عبارت Declare به کد برنامه استفاده از توابع API Viewer که شامل تعریف بسیاری از توابع API ویندوز، به همراه تعریف ثابت ها و نوع داده های مورد نیاز برای آن توابع است.

    در اینجا مثالی از نحوه تعریف تابع GetTempPath که مسیر پوشه ی Temporary ویندوز را بر می گرداند (معمولا c:\windows\temp) اورده شده است.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کلمه Declare به ویژوال بیسیک اعلام می کند شما قصد تعریف یک تابع DLL دارید. در یک ماژول استاندارد (General فرم)عبارت Declare می تواند بصورت Public و یا private تعریف شود بسته به اینکه شما بخواهید از آن تابع تنها در همان یک ماژول و یا در کل پروژه استفاده کنید؛ در یک ماژول کلاس، عبارت Declare تنها بصورت Private تعریف می شود.
    نامی که بعد از کلمه کلید Function قرار می گیرد، نام تابع است( البته نامی که شما در پروژه تان برای فراخوانی تابع استفاده می کنید). این نامه می تواند کاملا مشابه نام خود تابع API (همان نامی که در فایل DLL برای آن در نظر گرفته شده است) باشد. اگر بخواهید از نام متفاوت استفاده کنید باید نام حقیقی تابع را بعد از کلمه کلیدی Alias بیاورید.
    در مثال فوق نام تابع API در فایل DLL ، GetTempPathA و نامی که شما می توانید تابع را در برنامه تان فراخوانی کنید GetTempPath است. توجه داشته با مشخص شدن نام حقیقی تابع از هر نام مجازی که بخواهید می توانید استفاده کیند بنابراین می توانید نام هایی که API Viewer بطور پیش فرض برای توابع در نظر می گیرد را بدلخواه تغییر دهید.

    دلایلی که می توان برای برای استفاده از نام متفاوت بر شمرد بر شرح زیر است:
    • نام بعضی از توابع با کاراکتر (_) شروع شده است که در ویژوال بیسیک مجاز نیست. بنابراین باید از نام دیگری استفاده کنید.
    • امکان نام گذاری متفاوت به شما کمک می کند تا از یک شیوه نامگذاری استاندارد و یکپارچه در برنامه تان استفاده کنید و کدهای خوانا تری داشته باشید.
    • توابع API نسبت به حروف کوچک و بزرگ حساس هستند در حالیکه توابع ویژوال بیسیک اینگونه نیستند. بنابراین می توانید با انتخاب نام جدید Case این توابع را تغییر دهید.
    • بعضی از توابع API آرگومان هایی دارند که چند نوع متفاوت از داده را می پذیرند. در عبارت Declare این آرگومان ها از نوع Any تعریف می شوند. فراخوانی توابعی که آرگومان های Any دارند می تواند بسیار خطرناک باشد زیرا ویژوال بیسیک صحت این نوع داده ها را چک نمی کندو می تواند داده هایی از نوع غیر مجاز بهتابع ارسال شوند. برای جلوگیری از چنین وضعیتی مس توان چند نسخه از یک تابع DLL ، هر کدام با نام و نوع داده متفاوت تعریف کرد.
    • API ویندوز از تمام توابع یکه آرگومان رشته (String) می پذیرند دو نسخه دارد: یک نسخه ANSI یک نسخه Unicode. نسخه ANSI با پسوند A (به مثال فوق توجه کنید) و نسخه Unicode با پسوند W تمیز داده می شود. ویژوال بیسیک اگرچه درداخل از Unicode استفاده می کند امام هنگام فراخوانی یک تابع DLL بصورت خودکار تمام رشته را به ANSI تبدیل می کند. بنابراین شما معمولا از نسخه ANSI توابع API ویندوز استفاده خواهید کرد.
    API ویندوز بصورت خودکار نام تمام توابعی که آرگومان رشته ای دارند را تغییر می دهد و پسوند ها را از آنها حذف می کند( با استفاده از کلمه کلیدی Alias) .


    کلمه کلیدی Lib، فایل DLL را مشخص می کند که تابع در آن قرار دارد. توجه کنید که نام DLL را باید بصورت یک رشته در تعریف Declare بگنجانید. اگر فایل DLL که بعد از Lib مشخص شده در سیستم کاربر پیدا نشود یک خطای زمان _ اجرا با شماره 48 و مضمون "خطا در بارگذاری DLL " رخ خواهد داد. با این اطلاعات و مقدار یکد می توانید با این خطا مقابله کنید.



    تابع API کاربردی شماره 1)تعویض زبان صفحه کلید ار انگلیسی به فارسی و بالعکس


    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    PWSZKLID : این متغیر رشته 9 رقمی است که کد زبان رو مشخص می کند
    Flags : مقدار این متغیر برابر 1 خواهد بود.



    کد تبدیل زبان به فارسی داخل Command

    (
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد تبدیل زبان به انگلیسی داخل Command



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    تا درس بعدی خدانگهدار ...
    Last edited by nk_hsn; 09-02-2008 at 14:09.

  4. #4
    داره خودمونی میشه winer3549's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    25

    پيش فرض

    تا حالا که عالی بود

    ممنون میشم ادامه بدی

    من که هم مشتاقم و هم پیگیر

  5. #5
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    پيش فرض

    سلام
    خیلی خوب توضیح میدی
    موفق باشی

  6. #6
    پروفشنال hpk34's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    شيراز
    پست ها
    802

    پيش فرض

    با سلام

    دوست عزیز خیلی خوب بود.

    شما کل این توابع رو ندارین؟(منظورم به صورت pdf)

    با تشکر

  7. #7
    پروفشنال MrJamshidy's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    سره جاش
    پست ها
    694

    پيش فرض

    خوب توضیح دادن و ... نشد نون و آب که

    باید یک تاپیک میزنی تا آخرش بری نه یک ای.پی.آی میزاری بعد هم دیگه به این تاپیک نگاه هم نمیکنی

  8. #8
    پروفشنال MrJamshidy's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    سره جاش
    پست ها
    694

    پيش فرض

    بچه برای این که تاپیک خیلی خشک نباشه براتون یک ای.پی.آی میزارم

    این یکی چک میکنه آیا فایل مورد نظر هست یا نه
    Private Declare Function PathFileExistsA Lib "shlwapi.dll" (ByVal pszPath As String) As Long
    pszPath مسیر فایل مورد نظر *اگر مقدار برگشتی 0 بود یعنی فایل مورد نظر نیست اگر هر عددی غیر از 0 بود یعنی هست

  9. #9
    پروفشنال MichaelQwerty's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    روبروی مانیتور کامپیوترم
    پست ها
    770

    13

    با سلام

    دوست عزیز خیلی خوب بود.

    شما کل این توابع رو ندارین؟(منظورم به صورت pdf)

    با تشکر
    می تونی بیشتر توابع API رو توخود نرم افزار VB6 پیدا کنی

  10. #10
    داره خودمونی میشه nk_hsn's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    37

    1 ای کاش در محیط علمی به هم احترام می گذاشتیم ...

    بچه برای این که تاپیک خیلی خشک نباشه براتون یک ای.پی.آی میزارم

    این یکی چک میکنه آیا فایل مورد نظر هست یا نه
    Private Declare Function PathFileExistsA Lib "shlwapi.dll" (ByVal pszPath As String) As Long
    pszPath مسیر فایل مورد نظر *اگر مقدار برگشتی 0 بود یعنی فایل مورد نظر نیست اگر هر عددی غیر از 0 بود یعنی هست
    شماره 2-
    کاش دوستمون تابع بالا رو کامل می کردند و می گفتند که میشه برای کپی کردن فایل ازش استفاده کرد.

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

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    lpExistingFileName : آدرس فایل مبدا مثل
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    lpNewFileName : آدرس فایل مقصد
    bFailIfExists : مشخص می کند در صورت وجود فایل مقصد عملیات کپی ادامه یابد یا نه . اگر صفر باشد انجام می شود و اگر یک باشد انجام نمی شود.

    نحوه استفاده در برنامه :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    البته دوستان دقت داشته باشند که می توانند اختیار انتخاب مسیر ها رو از طریق componet دیالوگ متد ShowSave به کاربران نرم افزار نوشته شده بدهند.

    در ضمن اگر کمی دیر بروز می کنم . می خوام دوستان بیشتری فرصت دیدن و مشارکت در بحث رو داشته باشند . در غیراینصورت گذاشتن انبوه مطالب بطور پیوسته فقط سبب خستگی و یکطرفه شدن بحث می شود.
    Last edited by nk_hsn; 20-02-2008 at 21:31.

صفحه 1 از 3 123 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •