اگر برنامه را یکبار باز کردیم وقتی کاربر دوباره روی آیکن نرم افزار کلیک کرد مجددا نرم افزار باز نشه بلکه همون برنامه که باز بود دوباره بیاد بالا و نشون کاربر داده بشه نه اینکه یکی دیگه هم باز بشه.
اگر برنامه را یکبار باز کردیم وقتی کاربر دوباره روی آیکن نرم افزار کلیک کرد مجددا نرم افزار باز نشه بلکه همون برنامه که باز بود دوباره بیاد بالا و نشون کاربر داده بشه نه اینکه یکی دیگه هم باز بشه.
bool ok; Mutex m = new Mutex(true, " ", out ok);
if (!ok)
{
MessageBox.Show("برنامه در حاله اجرا است!!");
return;
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}
این کد خوبه ولی میخوام اگه باز بود به جای مسیج باکس برنامه بیاد بالا
سلام من می خوام وقتی نرم افزارم اجرا هست کاربر نتونه دوباره اونو اجرا کنه
اینو بلدم
حالا می خوام وقتی کاربر دوباره نرم افزار رو اجرا کرد همون اجرای قبلی که توی Notify هست بیاد بالا
در حقیقت یک چیزی می خوام مثل IDM
وقتی IDM اجرا هست یک بار دیگه اجراش کنید اونی که دوباره باز کردید بسته میشه و یک جوری به IDM باز می فهمونه که خودشو نشون بده
نمی دونم تونستم منظورم رو بفهمونم یا نه؟
بهتره اینجوری بگم
کاربر دو بار فایل EXE من رو باز کرده من می خوام از این یکی یک جوری با اون یکی ارتباط برقرار کنم
پیشاپیش ممنون
سلام
این مطالب رو مطالعه بفرمائید.
http://www.codeproject.com/Articles/...plication-in-C
و
http://www.codeproject.com/Articles/...ity-To-Restore
موفق باشید.
قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]
سلام به همه...
من با این تکه کد از اجرای چندباره جلوگیری می کنم و درست هم جواب می ده
bool ok;
Mutex m = new Mutex(true, "BarBari", out ok);
if (!ok)
{
FarsiMessage.Show("برنامه در حال اجرا می باشد", "", FarsiMessageBoxButtons.OK,
FarsiMessageBoxIcons.Error);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form2()); // or whatever was there
GC.KeepAlive(m); // important!
فقط یه مشکلی داره اینه که وقتی برنامه رو با کد Application.Restart ریست می کنم دفعه اول خطا میده و کاربر مجبوره دوباره خودش برنامه رو با آیکن اجرا کنه... راه حلی داره؟
ممنون از جوابت ولی متاسفانه کار نکرد