PDA

View Full Version : سوال: چگونه میتوان یک برنامه خارجی را کنترل کرد؟



m_ali_gho
یک شنبه 20 مرداد 1392, 03:58 صبح
سلام خدمت همه دوستان عزیز.
یه مشکلی برام پیش اومده بود، خیلی جاها گشتم اما جوابی که به دردم بخوره رو متاسفانه نتونستم پیدا کنم. در آخر تصمیم گرفتم اینجا بپرسم تا شاید دوستانی باشند که بتونن کمکم کنن.
قضیه از این قراره:
من یه برنامه دارم که باید در آن واحد فقط یه نمونه از اون اجرا بشه. برای این کار تو LOAD فرم اولش کد زیر رو گذاشتم که اگه برنامه قبلا اجرا شده باشه این جدیده رو ببنده
foreach (Process p in Process.GetProcesses("."))
{
try
{
if (p.ProcessName.ToString() == "MyApp")
{
Application.Exit();
}
}
catch
{
}
}
خب تا ایجاش مشکلی ندارم داستان از اینجا شروع میشه که می خوام قبل از اینکه Application رو ببنده اون یکی که باز هستش رو نمایش بده. یعنی مثلا on top بکنه یا اگه برنامه در حال اجرا minimize باشه اونو restore کنه و بعدش اینو ببنده. اگه کسی راهی بلده خوشحال میشم کمکم کنه. خیلی ممنون دوستان. اینو هم بگم که برنامه WinForm و به زبان C# 2012 هستش.

Mahmoud.Afrad
یک شنبه 20 مرداد 1392, 05:19 صبح
نام پروسس نمیتونه کمک کنه چون با تغییر نام میشه دورش زد.

راه اصولیش توی این لینک هست http://barnamenevis.org/showthread.php?176891

m_ali_gho
یک شنبه 20 مرداد 1392, 12:04 عصر
نام پروسس نمیتونه کمک کنه چون با تغییر نام میشه دورش زد.

راه اصولیش توی این لینک هست http://barnamenevis.org/showthread.php?176891

خیلی ممنون بابت راهنماییتون. بسیار کامل و جالب و آموزنده بود. به جوابم رسیدم اما شما چیزی گفتین که یه سوال دیگه برام پیش اومد برام اینکه چه جوری میشه نام پروسس رو تغییر داد؟ اصلا مگه امکان چنین چیزی هم وجود داره که کاربر بتونه نام پروسس رو تغییر بده؟

Mahmoud.Afrad
یک شنبه 20 مرداد 1392, 21:16 عصر
منظورم اینه که با تغییر نام فایل exe میشه روش شما رو دور زد.

m_ali_gho
یک شنبه 20 مرداد 1392, 21:23 عصر
آها. حالا متوجه شدم. بازم ممنون.