PDA

View Full Version : آموزش: اجرا شدن برنامه ساخته شده با C#‎ فقط یکبار



dashkeyvan
جمعه 06 دی 1392, 18:24 عصر
سلام به همه ی دوستان عزیز احتمالا خیلی ها این مشکل رو دارن که برنامه شون رو نمی خوان بیش از یکبار اجرا بشه یا دوسدارن به تعداد خاصی اجرا بشه
این کد رو رو پروژه خودم بهش رسیدم مشکلتون رو حل میکنه
کد رو در کلاس program برنامتون کپی کنید در قسمت ifمیتونید تعداد دفعات اجرا رو بیشتر کنید موفق باشد
کد رو جای تابع مین خوده برنامه بزارید!!!



static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
//
string proc = Process.GetCurrentProcess().ProcessName;
Process[] processes = Process.GetProcessesByName(proc);
if (processes.Length > 1)
{
MessageBox.Show("Application already running...", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
else
{
Application.Run(new Main_Form());
}
}

Mahmoud.Afrad
جمعه 06 دی 1392, 18:58 عصر
قبلا در این مورد بحث شده. مشکل کد شما اینه که با تغییر نام فایل اجرایی میشه برنامه رو چند بار اجرا کرد.

mthreat.info
جمعه 06 دی 1392, 19:10 عصر
سلام به همه ی دوستان عزیز احتمالا خیلی ها این مشکل رو دارن که برنامه شون رو نمی خوان بیش از یکبار اجرا بشه یا دوسدارن به تعداد خاصی اجرا بشه
این کد رو رو پروژه خودم بهش رسیدم مشکلتون رو حل میکنه
کد رو در کلاس program برنامتون کپی کنید در قسمت ifمیتونید تعداد دفعات اجرا رو بیشتر کنید موفق باشد
کد رو جای تابع مین خوده برنامه بزارید!!!



static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
//
string proc = Process.GetCurrentProcess().ProcessName;
Process[] processes = Process.GetProcessesByName(proc);
if (processes.Length > 1)
{
MessageBox.Show("Application already running...", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
else
{
Application.Run(new Main_Form());
}
}


Mutex (http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=473313#post473313)

Process (http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=470337#post470337)

WMI (http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=482919#post482919)

dashkeyvan
شنبه 07 دی 1392, 09:35 صبح
هیچ کس نمیاد اسم برنامه رو عوض کنه و اگر عوض کنه از اون به بعد اسم برنامه میشه همون......
مگه اینکه یارو بیاد برنامه رو اجرا کنه بعد اسمشو عوض کنه بعد اجرا کنه که فک نکنم هیچ ادم عاقلی این کارو بکنه

fmehrvarzi
شنبه 07 دی 1392, 13:27 عصر
این هم یه لینک stackoverflow با روشهای مختلف
How to force C# .net app to run only one instance in Windows? [duplicate] (http://stackoverflow.com/questions/184084/how-to-force-c-sharp-net-app-to-run-only-one-instance-in-windows)