PDA

View Full Version : سوال: چگونه می توان یک برنامه را در حافظه Resident کرد؟



vafaei
پنج شنبه 14 آبان 1388, 18:25 عصر
سلام
دوستان راهنمایی کنند چگونه می توان یک برنامه را در حافظه Resident کرد؟

behzadk
پنج شنبه 14 آبان 1388, 19:57 عصر
به اینا یه نگاهی بنداز مشکلت قکر کنم حل بشه

http://progtuts.info/14/your-c-program-in-the-system-tray/
http://stackoverflow.com/questions/580277/c-program-win-startup-to-system-tray

vafaei
پنج شنبه 05 آذر 1388, 19:57 عصر
از کمک شما متشکرم.
من از روشی که در لینک اول بود استفاده کردم.
فقط می خواهم هنگامی که دکمه close فرم زده شد برنامه بسته نشود.
البته کد زیر را هم نوشتم اما جواب نگرفتم:


private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
this.Hide();
this.ShowInTaskbar = false;
}

منتظر راهنمایی دوستان هستم.

khmahdi
پنج شنبه 05 آذر 1388, 20:33 عصر
شما این کدو تو اونت FormClosed نوشتید ، باید اونو تو FormClosing بنویسید

vafaei
یک شنبه 08 آذر 1388, 20:08 عصر
این کد رو داخل FormClosing هم نوشتم ولی جواب نداد؟


this.Hide();
this.ShowInTaskbar = false;

اگه کدم اشتباه لطفا راهنمایی کنید.

Mehran27364
یک شنبه 08 آذر 1388, 21:24 عصر
در رویداد
form_Closing
بنویس
e.Handled=true;
بدین ترتیب فرم هیچگاه بسته نخواهد شد مگر اینکه برای این کد شرط بگذاری

vafaei
دوشنبه 09 آذر 1388, 18:30 عصر
در رویداد
form_Closing
بنویس
e.Handled=true;
بدین ترتیب فرم هیچگاه بسته نخواهد شد مگر اینکه برای این کد شرط بگذاری


امتحان کردم ولی Handled برای e تعریف نشده.
پیغام خطا میده!

vafaei
پنج شنبه 12 آذر 1388, 09:06 صبح
با e.Cancel = true; مشکلم حل شد ولی فرم ديگه با دکمه Exit که در contextMenuStrip تعريف کردم هم بسته نمیشه.
یه متغيير از نوع FormClosingEventArgs هم تعريف کردم که دکمه Exit خواصيت Cancel = false می کنم ولی موقعی که دکمه Exit اجرا می شه خطا می گيره و میگه که مقدار متغییر Null است؟
منظر راهنمایی دوستان هستم.

vafaei
پنج شنبه 12 آذر 1388, 16:50 عصر
عکس خطای ایجاد شده
همچنان منتظرم.

ali_autumnal
جمعه 13 آذر 1388, 14:20 عصر
سلام

نمیدونم مشکلتون حل شده یا نه.

اما اگه حل نشده به این نکته باید توجه کنید که:
آیا فرمی که میخواد در حافظه مقیم بشه ، فرم اصلی هست؟ یا نه؟

ببینید مثلا فرم رو میخوایم در حافظه مقیم بشه کدهایی که نوشتید همه درست هست.
اما اگه این فرمی که میخواهید در حافظه مقیم بشه فرم اصلی نیست اینجاست که ایراد میگیره و گاها بجای اینکه مقیم بشه یا Close صادر میشه یا پیغام خطا میده.

صادر شدن دستور Close برمیگرده به زمانی که شما از فرم اصلی فرم 2 رو فراخونی کردید. این دستور Close همون دستوری است که بعد فراخونی فرم 2 نوشتید داره الان اجرا میشه.
و پیغام خطا هم مثل این...

من احتمال میدم که شما فرم اصلی رو مقیم نکردید. بلکه از فرم های بعدی دستور مقیم رو صادر کردید.
موفق باشید.