معرفی چند تابع API و استفاده از آنها در #C
در این مطلب در مورد کار با توابع API ویندوز و نحوه پیاده سازی آن در سی شارپ توضیح خواهیم داد.
API به معنی رابط کاربردی برنامه نویسی یا Application Programming Interface و همچنین جنبه اساسی تشکیل وب 2 است اما واقعا apiچیست و کاربرد آن چگونه است ما در این مطلب به توضیح این موضوع خواهیم پرداخت.
این کلمه توجه خاصی به رابط یا Interface دارد. اگر شما هر گونه تجربه ای در برنامه نویسی داشته باشید، همه معانی و مخفف ها با شنیدن کلمه Interface به ذهنتان می آید؛ اما ما بیشتر علاقمند به دانستن معنی کلاسیک و معمولی آن هستیم.
یک رابط (Interface) یک مرز مشترک بین دو سیستم و سرویس جدا است. از جمله می توان این موضوع را برداشت کرد که بین این دو سیستم ارتباط برقرار است
نکته : توابع عملیاتی API در صورتیکه کار خود را بدرستی انجام ندهند مقدار صفر، در غیر این صورت مقدار غیر صفر را برمیگردانند.
()ShellAbout
با استفاده از این تابع API میتوان پنجره About ویندوز را باز کرد و همچنین میتوان در متن آن تغییراتی را اعمال کرد.
[DllImport("shell32.DLL")]
[DllImport("User32.DLL")]
public string Lpwindow { get; set; }
public IntPtr Hicon { get; set; }
public static extern int ShellAbout(IntPtr hwnd,string szApp,string szotherstuff,IntPtr hicon );
public static extern int FindWindow(string str,string lpwindow);
طریقه استفاده از تابع فوق
private void btnbutton1_Click(object sender, EventArgs e)
{
var Window = (IntPtr)FindWindow(null, Lpwindow);
ShellAbout(Window, "===WINDOWS===", "HELLO", Hicon);
}
() SetSuspendState
با استفاده از این تابع API میتوان سیستم را به حالت Hibernate برد.
[DllImport("powrprof.dll")]
public static extern int SetSuspendState(int hibernate,int forcecritical,int DisablewakeEvent);
طریقه استفاده از تابع فوق
private void btnbutton1_Click(object sender, EventArgs e)
{
SetSuspendState(1, 0, 0);
}
()LockWorkStation
با اجرای این تابع سیستم به حالت Lock میرود و کاربر برای استفاده از سیستم باید کلمه عبور را وارد کند.
[DllImport(“user32.DLL”)] public static extern int LockWorkStation();
طریقه استفاده از تابع فوق
private void btnbutton1_Click(object sender, EventArgs e)
{
LockWorkStation();
}
()FatalAppExit
در صورت اجرای این تابع برنامه یک پیغام خطا نمایش میدهد و بعد از بستن این پیام برنامه بسته میشود.
DllImport("kernel32.DLL")]
public static extern int FatalAppExit(int uAction,string ipmesseg);
طریقه استفاده از تابع فوق
private void btnbutton1_Click(object sender, EventArgs e)
{
FatalAppExit(0, "ERROR PROGRAM");
}
()timeGetTime
این تابع مدت زمان روشن بودن سیستم را به میلی ثانیه برمیگرداند.
طریقه استفاده از تابع فوق
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}