PDA

View Full Version : می خوام برنامه در آن واحد فقط یکبار اجرا بشه



Happy_davood
سه شنبه 08 شهریور 1384, 12:28 عصر
سلام
خوب دوستان من یه برنامه نوشتم که هنگام بستن واقعاً بسته نمیشه و فقط در TaskBar قرار میگیره و از یک NotifyIcon هم استفاده کردم .
منتهی هر بار که برنامه رو اجرا می کنم یک نسخه جدید از اون باز میشه . در حالیکه من می خوام همیشه یک نسخه باز باشه . می دونم که این کار شدنی هست ولی چطور نمی دونم .
تشکر

amir_3530
سه شنبه 08 شهریور 1384, 13:33 عصر
private void btnExit_Click(object sender, System.EventArgs e)
{
Application.Exit();

}

S.Azish
سه شنبه 08 شهریور 1384, 13:44 عصر
از این تابع برای شروع برنامه استفاده کنید




using System.Diagnostics;
using System.Reflection;

[STAThread]
static void Main()
{
if (IsApplicationRunning() == false)
{
Application.Run(new Form1());
}
}

private static bool IsApplicationRunning()
{
bool isApplicationRunning = false;

string assemblyLocation = Assembly.GetExecutingAssembly().Location;
string processName = System.IO.Path.GetFileNameWithoutExtension(assembl yLocation);

Process[] runningProcess = Process.GetProcessesByName(processName);


if (runningProcess.Length > 1)
{
isApplicationRunning = true;
}

return isApplicationRunning;
}

whitehat
چهارشنبه 09 شهریور 1384, 11:14 صبح
این کد در صورتیکه دو فایل exe با نامهای مختلف ولی عملکرد یکسان اجرا شوند کارآیی نخواهد داشت :(

M.GhanaatPisheh
چهارشنبه 09 شهریور 1384, 11:56 صبح
شما میتونید زمان اجرا شدن پروژه یه فایل توی مسیر App تون بسازید و اونو Open کنید و برای اجراهای بعدی چک کنید که فایل باز هست یا نه. زمانی هم که از App خارج میشید Close کنید.

hmm
چهارشنبه 09 شهریور 1384, 13:33 عصر
جالبه :قهقهه:
ولی منطقی نیست :گریه:
اگه چند کاربر بخوان از یک exe مشترک روی کامپیوترهای خودشون استفاده کنند این امکان وجود ندارد
(شاید هم داره من نمیدونم):متعجب: