PDA

View Full Version : سوال: جلوگیری از باز شدن دوباره فایل exe مربوط به برنامه



sarapepors
دوشنبه 05 مهر 1389, 11:37 صبح
سلام
میخوام فقط رو فایل exe برنامه ای که نوشتم کلیک می کنم اگه یک بار بازه دیگه باز نشه من تو قسمت program.cs این کد رو نوشتم
if application.openforms.count==0
application.run(new form1)
این جواب نداده می شه راهنمایی کنید
متشکرم

صباح فتحی
دوشنبه 05 مهر 1389, 11:41 صبح
سلام دوست عزیز توی Main فایل program.cs این رو بگذارید..موفق باشید



static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{

bool instanceCountOne = false;
using (System.Threading.Mutex mtex = new System.Threading.Mutex(true, "sabah", out instanceCountOne))
{
if (instanceCountOne)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new frmsplash());
mtex.ReleaseMutex();
}
else
{
MessageBox.Show(" barname dar hale ejrast", "Not Responding...");
}
}
}

MSN_Issue
دوشنبه 05 مهر 1389, 11:44 صبح
سلام
یه PDF مفید در این رابطه برات ضمیمه کردم ، امیدوارم به دردت بخوره

Glx.Mzf
دوشنبه 05 مهر 1389, 15:43 عصر
سلام
این کد رو تو Main بنویس


if(IsPrevInstance())
return;


این رو هم خارج Main


privatestaticbool IsPrevInstance()
{
string processName = Process.GetCurrentProcess().ProcessName;
Process[] instances = Process.GetProcessesByName(processName);
if (instances.Length > 1)
returntrue;
else
returnfalse;

}



یعنی اینجوری


using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Diagnostics;
namespace TelephoneBook
{
staticclassProgram
{
///<summary>
/// The main entry point for the application.
///</summary>
[STAThread]
staticvoid Main()
{
if(IsPrevInstance())
return;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(true );
Application.Run(newTelBook());
}

privatestaticbool IsPrevInstance()
{
string processName = Process.GetCurrentProcess().ProcessName;
Process[] instances = Process.GetProcessesByName(processName);
if (instances.Length > 1)
returntrue;
else
returnfalse;

}

}
}

sarapepors
دوشنبه 05 مهر 1389, 21:02 عصر
مرسی از راهنماییتون دوستان اما من می خوام که وقتی برنامه بازه وقتی مثلا تو حالت minimize هست با اجرای دوباره maximaze بشه از فایلی که msn_issue گذاشتن استفاده کرد اما زمانی که می خوام از متد NativeMethods استفاده کنم خطا داره و می گه که به خاطر سطح دسترسی غیر قابل دسترسه.
اگه از دوستان کسی اطلاع داره در این مورد لطفا راهنمایم کنه مرسی.