سلام
این هم یه نمونه کد برای فراخوانی API های ویندز
کلاس :
کد:
using System.Runtime.InteropServices;
namespace SwapMouseEg {
class SwapMouse {
[DllImport("user32.dll")]
public static extern Int32 SwapMouseButton(Int32 bSwap);
}
}
فرم :
کد:
private void btnSet_Click(object sender, EventArgs e)
{
SwapMouse.SwapMouseButton(1);
}
private void btnReset_Click(object sender, EventArgs e) {
SwapMouse.SwapMouseButton(0);
}
یه نگاه هم به این لینک بنداز
http://www.c-sharpcorner.com/UploadFile/...32api.aspx
در مورد سوال دوم هم :
● NET FramWork Classes
در برنامه های نوشته شده تحت ویندوز با استفاده از Win32 API زمینه استفاده از مجموعه ای وسیع از توابع فراهم می گردد. توابع فوق برای انجام عملیات متفاوتی نظیر: رابط گرافیکی کاربر ،عملیات متفاوت در رابطه با سخت افزار و سایر عملیات مرتبط ، باسیستم عامل مرتبط خواهند شد. بنابراین برنامه های تحت ویندوز برای ارتباط با سیستم عامل و بهره مندی از خدمات آن ، خواسته خود را از طریق فراخوانی توابع مربوطه در Win32 API انجام خواهند داد. برنامه های دات نت چگونه با سیستم عامل مرتبط خواهند شد؟ خوشبختانه Win32 API مربوط به گذشته بوده و برنامه های دات نت از کلاس های فریمورک دات نت استفاده می کنند. فریمورک فوق مجموعه ای سازمانیافته از کلاس هائی است که بمنظور انجام تمامی عملیات مورد نظر یک طراح و پیاده کننده نرم افزار طراحی و پیاده سازی شده اند.
برخلاف Win32 API ،کلاس های دات نت در یک سیستم سلسله مراتبی NameSpace سازماندهی شده اند.هر NameSpace می تواند دارای تعداد نامحدودی از کلاس ها باشد. مثلا" NameSpace پایه ای System شامل کلاس هائی است که از آنها برای نوع داده های اولیه نظیر : System.Int32, System.Array , System.string و غیره استفاده می شود. NameSpace ،System.Data شامل کلاس ها و سایر Namespace های مربوطه برای دستیابی به داده ها است . NameSpace ،System.IO شامل کلاس های مربوطه برای انجام عملیات متفاوت در رابطه با فایل ها و ورودی و خروجی است . دات نت دارای صدها کلاس بوده که تمامی آنها با استفاده از Namespace ها بدرستی سازماندهی شده اند. طراحان و برنامه نویسان می توانند در صورت نیاز اقدام به طراحی کلاس های اختصاصی و NameSpace مربوط به خود نموده و آنها را در برنامه های دات نت خود استفاده نمایند.
دقت داشته باشید که کلاس های فریمورک دات نت شامل یک کلاس برای هر یک از نوع داده ها در NameSpace ، System می باشد. زبانهای برنامه نویسی دات نت نظیر VB.NET,C#,Jscript.NET,? می بایست از این نوع ها استفاده نمایند . این بدان معنی است که هر نوع داده بمنزله یک کلاس در نظر گرفته خواهد شد. بنابراین زمانی که عملیاتی مطابق زیر را انجام می دهیم :
IN VB.NET: Dim i as Integer
IN C# : int i;
IN Jscript.NET : Var i;
در حقیقت یک نمونه از یک کلاس System.Int32 را ایجاد کرده ایم . با توجه به این امر که هر یک از زبانهای برنامه نویسی از نوع داده های یکسان استفاده و از مجموعه یکسانی از کلاس ها استفاده می نمایند ،ارتباط متقابل بین زبانها ی برنامه نویسی که زمانی بیش از یک آرزو نبود ،میسر خواهد شد . بدون دلیل نیست که CLR را Common Language Runtime نامیده اند. برنامه های نوشته شده توسط هر یک از زبانهای برنامه نویسی در نهایت و پس از ترجمه توسط کمپایلرهائی که دات نت را حمایت می نمایند ، به کدهای MSIL تبدیل خواهند شد ،بدین ترتیب این اطمینان و تضمین بوجود خواهد آمد که تا این مرحله ( مرحله ترجمه کدهای نوشته شده با یک زبان برنامه نویسی و ترجمه آنها به MSIL ) تمامی زبانهای برنامه نویسی از نوع داده ها و کلاس های موجود در فریمورک دات نت استفاده کرده اند.
منبع :
http://atalebi.com
موفق باشی