نقل قول نوشته شده توسط سوداگر مشاهده تاپیک
راه اصولی اینکار استفاده از 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 نام فرم اصلی برنامه است

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