PDA

View Full Version : معرفی چند تابع ‏API‏ و استفاده از آنها در ‏C#‎‎‎‎‎



alexmcse
سه شنبه 28 آبان 1392, 20:29 عصر
نکته :توابع عملیاتی ‏API‏ در صورتی که کار خود را بدرستی انجام ندهند مقدار صفر، در غیر این صورت مقدار غیر صفر را برمیگردانند.‏
پروپرتی های زیر را تعر یف میکنیم

‎ public static string Lpwindow { get; set; }‎
‎ public static IntPtr hicon { get; set; }‎
‎ public static int S { get; set; }‎
‏1-‏ ShellAbout‏ ‏‎:‎‏ با استفاده از این تابع ‏API‏ می توان پنجره ‏About‏ ویندوز را باز کرد و در ضمن میتوان در متن آن تغییراتی را اعمال ‏کرد.‏
‎ [DllImport("shell32.DLL")]‎
‎ public static extern int ShellAbout(IntPtr hwnd,string szApp,string ‎szotherstuff,IntPtr hicon );‎
‎ ‎ [DllImport("User32.DLL")]‎
‎ public static extern int FindWindow(string str,string lpwindow);‎
private void button10_Click(object sender, EventArgs e)‎
‎ {‎
‎ IntPtr w = (IntPtr)FunctionApi.FindWindow(null,Lpwindow);
ShellAbout(w, "HELLO", "====WINDOW USER====", hicon);

{
‏2-‏ SetSuspendState‏ ‏‎:‎‏ با استفاده از این تابع ‏API‏ می توان سیستم را به حالت ‏Hibernate‏ برد.‏

‎[DllImport("powrprof.dll")]‎
public static extern int SetSuspendState(int hibernate,int forcecritical,int DisablewakeEvent);‎
‎ ‎
‎ private void button11_Click(object sender, EventArgs e)‎
‎ {‎
‎ SetSuspendState(1, 0, 0);‎
‎ }‎

3-‏ ‏ با اجرای این تابع سیستم به حالت ‏Lock‏ میرود و کاربر برای استفاده از سیستم باید کلمه عبور را وارد کند. ‏

‎[DllImport(“user32.DLL”)]‎
‎ ‎‎ public static extern int LockWorkStation();‎
‎ private void button15_Click(object sender, EventArgs e)‎
‎ {‎
‎ LockWorkStation();‎
‎ ‎‏ ‏‎ }‎

4-‏ FatalAppExit‏ : در صورت اجرای این تابع برنامه یک پیغام خطا نمایش میدهد و بعد از بستن این پیام برنامه بسته می شود.‏

‏ ‏DllImport("kernel32.DLL")]‎
‎ public static extern int FatalAppExit(int uAction,string ipmesseg);‎
‎ ‎‎ private void button17_Click(object sender, EventArgs e)‎
‎ {‎
‎ FatalAppExit(0, "Error in Program");‎
‎ }‎

‏5-‏ timeGetTime‏ : این تابع مدت زمان روشن بودن سیستم را به میلی ثانیه برمیگرداند.‏

‎[DllImport("Winmm.DLL")]‎
public static extern long timeGetTime();‎
‎ private void timer1_Tick(object sender, EventArgs e)‎
‎ {‎
‎ var sd = Convert.ToString(TimeGetTime());‎
‎ var i = Convert.ToInt32(sd.Substring(0, sd.Length - 3));‎
‎ int m;‎
‎ if (i < 60)‎
lable.Text ‎ = @"00:00:" + i;‎
‎ else if (i >= 60 && i < 3600)‎
‎ {‎
‎ m = i/60;‎
‎ S = i%60;‎
‎ label.Text ‎ = @"00:" + m + @":";‎
‎ }‎
‎ else
‎ {‎
‎ var h = i/3600;‎
‎ var mm = i%3600;‎

‎ if (mm > 59)‎
‎ {‎
‎ m = mm/60;‎
‎ S = mm%60;‎
lable.Text = h + @":" + m.ToString(CultureInfo.InvariantCulture) + @":" + S;‎
‎ }‎
‎ else
‎ {‎
lable.Text ‎ = h + @":00:" + mm;‎
‎ }‎
‎ }‎
‎}‎

:تشویق::تشویق: