PDA

View Full Version : سوال: اجرا کد در قسمت خروج برنامه



tanha2007
شنبه 26 دی 1388, 18:18 عصر
سلام.

من کد را درقسمت FormClosing نوشتم و زمانیکه فرم را توسط دکمه X خود فرم بسته مینمایم کد اجرا میشود ولی زمانیکه برنامه باز است و کامپیوتر را shutdown میکنم اون کد اجرا نمیشه ؟

راه حل چیست؟

SMRAH1
شنبه 26 دی 1388, 18:27 عصر
سلام
جواب ساده استفاده از Application.ApplicationExit (البته باید حتما تست بشه) و دیگر رویداد های Application.(در این مورد جستجو کنید حتما به نتیجه می رسید).
موفق باشید

tanha2007
شنبه 26 دی 1388, 18:48 عصر
سلام دوست عزیز،

خوب این تکه کد را باید در کدام eventHandler بگذارم ؟

tanha2007
شنبه 26 دی 1388, 18:50 عصر
سلام دوست عزیز،

ببینید من زمانیکه دکمه close خود فرم را کلیک مینمایم کد که من میخواهم اجرامیشود ... ولی اگر برنامه باز باشد و من کامپیوتر را shutdown یا restart نمایم اون کد کار نمیکند ..

SMRAH1
یک شنبه 27 دی 1388, 13:11 عصر
سلام
اول اینکه وقتی سیستم رو restart می کنی،خوده سیستم عامل هم نمیفهمه چه برسه به برنامه ی من و شما!
دوم اینکه رویداد Application.ApplicationExit در هنگام بسته شدن برنامه فراخوانی میشه.اگر در گوگل جستجو کنی،کد های زیادی دستت میاد با این حال این مراحل رو اجرا کن تا نتیجه رو ببینی:
1) فایل Program.cs رو باز کن
2) در تابع Main خطی داری که با Application.Run شروع میشه،دقیقا قبل از اون ،کد زیر رو وارد کن:

Application.ApplicationExit += new EventHandler(Application_ApplicationExit);3) بعد از تابع Main کد زیر رو وارد کن:

static void Application_ApplicationExit(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("Exit");
}کد رو کامپایل کن و اجرا،موقعی که می خواهی از برنامه خارج بشی پیغام Exit صادر میشه.
در واقع ما اومدیم رویداد ApplicationExit شی Application رو گرفتیم (وصل کردید به تابع Application_ApplicationExit) و بعد برنامه دلخواه رو در اون نوشتیم.
رویداد های دیگه ی Application(مثل ThreadException و ThreadExit) هم می تونن مفید باشن.

در کل باید تست کنی ببینی که کدام رویداد دقیقا در موقع مد نظرت فراخوانی میشه.
موفق باشی

tanha2007
یک شنبه 27 دی 1388, 20:41 عصر
تشکر دوست عزیز بابت معلومات مفید. من هم به این نتیجه رسیدم که زمانیکه کامپیوتر را بسته یا ریستارت مینماییم باید زمان کافی برای سیستم عامل داده شود تا بتواند بدرستی اون برنامه را ببندد مثل سیستم عامل ویندوز 7 در غیر آنصورت کد اجرا نمیشود.