
نوشته شده توسط
dele_ghamgin_2008
من کدهای زیادی در این سایت جستجو کردم ولی هیچکدومش کار نکرد . دستوری که فقط برنامه را برای یکبار اجرا کند را می خواستم . لطفاً اگر اطلاعاتی از خودتان دارید در اختیارم بگذارید چون کدهای موجود در این سایت کار نکرد. متشکرم
راه اصولی اینکار استفاده از Mutex هست:
فایل program.cs را باز کنید و به using ها using System.Threading رو اضافه کنید و سپس به جای کد:
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}
از این کد استفاده کنید:
static String _mutexID = "a8b65a4f-9ffb-46fd-a432-bdd3338c423e";
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Boolean _isNotRunning;
Mutex _mutex = new Mutex(true, _mutexID, out _isNotRunning);
if (_isNotRunning)
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("برنامه هم اکنون در حال اجراست");
return;
}
()Form1 نام فرم اصلی برنامه است
موفق باشید