امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 4
  • 1
  • 2
  • 3
  • 4
  • 5
توابع API ویندوز در سی شارپ
نویسنده پیام
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,478
موضوع‌ها: 261
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1645
( 3909 تشکر در 1436 ارسال )
ارسال: #1
توابع API ویندوز در سی شارپ
برنامه زیر 4 تابع API را مورد بررسی قرار داده است
کد:
using System.Runtime.InteropServices;
namespace CSharpWin32APICall
{
    public partial class Form1 : Form
    {
        [DllImport("User32.dll")]
        public static extern IntPtr CloseWindow(IntPtr hWnd);
        [DllImport("User32.dll")]
        public static extern IntPtr BringWindowToTop(IntPtr hWnd);
        [DllImport("User32.dll")]
        public static extern IntPtr DestroyWindow(IntPtr hWnd);
        [DllImport("User32.dll")]
        public static extern IntPtr AnimateWindow(IntPtr hWnd,
             int time, AnimateWindowFlags flags);
در بخش بالا 4 عدد از توابع API را از کتابخانه هایشان فراخوانی کرده ایم . همانطور که واضح است نام کتابخانه

چیزی نیست جز User32.dll .

بعضی از توابع یکسری Flag دارند . ( یک عددی که به عنوان پارامتر به تابع پاس داده میشود و رفتار تابع را مشخص

می کند.)برای مثال در بالا پارامتر سوم تابع AnimateWindow یک فلگ می باشد که نوع انمیشن پنجره را مشخص

میکند. ( مثلا میگوید Fade شو یا به راست برو یا به چپ حرکت کن و ....) برای فراخوانی فلگ ها در زبان های

شی گرا ، از نوع های شمارشی استفاده میشود. یک نوع شمارشی یا enum مانند یک مجموعه است که هر

عضو آن می تواند یک عدد داشته باشد . ( می توانید آن را مجموعه ای از زوج مرتب ها تلقی کنید که یک بخش

آنها نام صفت ، و بخش دیگر مقدار آن است.) برای AnimateWindow خواهیم داشت :
کد:
public enum AnimateWindowFlags
        {
            AW_SLIDE = 0x00040000,
            AW_VER_POSITIVE = 0x00000004,
            AW_VER_NEGATIVE = 0x00000008,
            AW_HIDE = 0X40000,
            AW_BLEND = 0X80000,
            AW_ACTIVATE = 0x00020000
        }
برای مثال موقعی که فرم لود میشود ، تابع Animate Window را فراخوانی می کنیم تا فرم به صورت Fade لود

شود :
کد:
AnimateWindow(this.Handle, 1000,AnimateWindowFlags.AW_ACTIVATE
                | AnimateWindowFlags.AW_BLEND);
که در کد بالا ، آنجایی که پر رنگ شده است ، دارد از نوع شمارشی بالا استفاده میکند و جای آنها اعداد معادل آنها

قرار میگیرد و به تابع پاس داده میشوند. پارامتر دوم نیز زمان به میلی ثانیه است که در اینجا 1000 برابر یا یک ثانیه

است.

بقیه توابع یک پارامتر عدد صحیح دارند که ID فرم است که باز شده است . این ID نامش HWND یا به عبارتی

Window Handle می باشد. برای دسترسی به این شماره در سی شارپ از عبارت this.Handle استفاده میکنیم.
   

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
(آخرین ویرایش در این ارسال: ۱۲-مهر-۱۳۹۲, ۲۲:۲۴:۳۲، توسط babyy.)
۱۲-مهر-۱۳۹۲, ۱۰:۵۰:۰۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : behzady, babyy, A.P-H@ck3r


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  رایت dvd سی شارپ Ghoghnus 0 155 ۲۱-تير-۱۳۹۹, ۱۷:۵۶:۱۵
آخرین ارسال: Ghoghnus
  Voice Recognition API آفلاین maxerx 0 879 ۰۶-خرداد-۱۳۹۷, ۱۹:۱۰:۳۸
آخرین ارسال: maxerx
  کد باز کردن عکس gif در سی شارپ اگه دارید لطفا بهم بدید. game_is_over 2 5,090 ۲۳-خرداد-۱۳۹۶, ۱۲:۴۴:۰۹
آخرین ارسال: sani8888
  برنامه چت در سي شارپ paeezesahar 2 4,622 ۱۰-فروردین-۱۳۹۵, ۰۰:۴۴:۲۹
آخرین ارسال: Ghoghnus
  آموزش مقدماتی سی شارپ به زبان فارسی rastin289 0 2,146 ۰۹-فروردین-۱۳۹۵, ۰۱:۵۷:۰۸
آخرین ارسال: rastin289
  Telnet در محیط ویندوز فرم، نه کنسول sharin 11 6,855 ۱۹-دى-۱۳۹۴, ۲۲:۴۹:۵۴
آخرین ارسال: sharin
  خواندن فایل از وب با سی شارپ Ghoghnus 0 2,000 ۱۹-خرداد-۱۳۹۴, ۰۰:۰۵:۴۱
آخرین ارسال: Ghoghnus
  اتصال به mysqlتحت وب در سی شارپ taksa2012 1 2,958 ۰۵-فروردین-۱۳۹۴, ۱۱:۴۴:۳۶
آخرین ارسال: Ghoghnus
  پردازش تصویر با سی شارپ Lian 3 7,436 ۰۲-فروردین-۱۳۹۴, ۰۲:۵۴:۴۷
آخرین ارسال: rsaghi
  رسم نودار در سی شارپ salmon 1 2,054 ۲۰-آذر-۱۳۹۳, ۱۸:۲۴:۵۳
آخرین ارسال: salehjg

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS