PDA

View Full Version : سوال: مطلع شدن از shut down



s_s_h70
چهارشنبه 23 بهمن 1392, 06:13 صبح
سلام.
کد زیر باعث میشه تا برناممون هنگامی که کامپیوتر میخواد خاموش بشه متوجه بشه و دستوراتی رو اجرا کنه و همچنین وقتی که از تسک منیجر حذف میشه بازهم متوجه میشه ، حالا مشکل من اینجاست که تو برنامه ی من که فرم اپلیکیشن هست فرمم رو به دلایلی حذف کردم یعنی برنامم هنگام اجرا شدن هیچی نشون نمیده فقط خودش اجرا میشه و تغییراتی رو تو سیستم اعمال میکنه ؛ سوال من از اساتید #C اینه که تو این وضعیت چطوری بفهمم کی سیستم میخواد shut down کنه و log off کنه و از این قبیل اعمال رو از کجا بفهمم؟

اگه ممکنه سورس معرفی کنید.


private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.WindowsShutDown)
MessageBox.Show("Windows is shutting down");
else if (e.CloseReason == CloseReason.TaskManagerClosing)
MessageBox.Show("the program closed by task manager");
}

Mahmoud.Afrad
پنج شنبه 24 بهمن 1392, 15:10 عصر
Microsoft.Win32.SystemEvents یه نگاه بنداز.

s_s_h70
شنبه 26 بهمن 1392, 08:08 صبح
Microsoft.Win32.SystemEvents یه نگاه بنداز.

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

ممنون.

ferankyy
شنبه 26 بهمن 1392, 20:53 عصر
API , HOOK

s_s_h70
دوشنبه 28 بهمن 1392, 09:46 صبح
Microsoft.Win32.SystemEvents یه نگاه بنداز.


API , HOOK

شرمنده بخدا کلی تو نت گشتم ولی بازم چیزی که میخواستم پیدا نشد که نشد، اینو واسه پروژه درسیم میخوام فقط یه سورس کوچیک باشه کارم راه میفته.
اینجا (http://up.ashiyane.org/images/fn8mie2rvt4o7m9vqpem.rar) نمونه سورس هایی که با روش های مختلف نوشته شدن ولی بعضیشون جواب نمیدن ، اگه میشه یه سورس بدین.
ممنون.
http://up.ashiyane.org/images/fn8mie2rvt4o7m9vqpem.rar

Mahmoud.Afrad
پنج شنبه 01 اسفند 1392, 14:13 عصر
مثلا در لودفرم مینویسی:
Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEndingEventHandler(SystemEv ents_SessionEnding);
و رویدادگردان رو هم به این صورت

void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e)
{
MessageBox.Show("shuting down ...");
}

برنامه رو اجرا و سپس شات دان کن.

s_s_h70
شنبه 03 اسفند 1392, 07:34 صبح
مثلا در لودفرم مینویسی:
Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEndingEventHandler(SystemEv ents_SessionEnding);
و رویدادگردان رو هم به این صورت

void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e)
{
MessageBox.Show("shuting down ...");
}

برنامه رو اجرا و سپس شات دان کن.

ممنون مدیر عزیز ولی من یه کد واسه محیط کنسول میخواستم اینو قبلاً دیده بودم. آخه تو کنسول، فرم و رویدادی که مثل فرم فراخانی بشه نداریم! چطوری اینو تو کنسول پیاده کنیم؟

danialafshari
شنبه 03 اسفند 1392, 08:28 صبح
سلام
یک راحش به این شکله:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class test
{
public void obj()
{
Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEndingEventHandler(SystemEv ents_SessionEnding);
}
void SystemEvents_SessionEnding(object sender, Microsoft.Win32.SessionEndingEventArgs e)
{
Console.WriteLine("Shut Down ...");
}
}
class Program
{


static void Main(string[] args)
{
test t = new test();
t.obj();

Console.ReadKey();
}

}
}