PDA

View Full Version : بستن نرم افزار در صورتی که توسط کاربر باز شده باشد



jmfnima
دوشنبه 11 دی 1391, 22:07 عصر
با سلام
نرم افزار من شامل تعدادی کاربر هست که به صورت Share ازش استفاده می کنن حالا هر موقع که میخوام نرم افزار رو آپدیت کنم در صورتی که نرم افزار توسط یک کاربر باز باشه اجازه آپدیت داده نمیشه میخوام کاری کنم در صورتی که توسط هر کاربر باز باشه یک پیغام براش ظاهر بشه و بعد از مثلا یک دقیقه نرم افزار بسته بشه .

group45
سه شنبه 12 دی 1391, 00:40 صبح
با سلام
فکر کنم میخواید خود برنامه رو آپدیت کنید (اگه درست متوجه شده باشم)
خوب معلومه نمیشه چون برنامه در حال اجراست و کلی از اطلاعاتش تو رم آدرس گذاری شده. مگه میشه تغییرش داد.!!!!!!!!!!
برای این کار شما باید موقع خروج از برنامه یا بستنش بیاد چک کنه که فایل آپدیت داره یا نه که اگه داره یه برنامه جدا گونه ای توسط برنامه اصلیتون اجرا بشه بعد برنامه اصلی بسته بشه.
اون برنامه فایل آپدیت رو جایگزین فایل قبلی کنه.
بعد پایان آپدیت یا برنامه اتوماتیک بیاد بالا یا بعدا توسط کاربری به صورت عادی اجرا بشه.

sinashahab
سه شنبه 12 دی 1391, 01:02 صبح
شبكه رو كلا قطع كن. عوض كن. برگردون :ي

jmfnima
سه شنبه 12 دی 1391, 17:20 عصر
شبكه رو كلا قطع كن. عوض كن. برگردون :ي
خسته نباشی دوست عزیز با این پیشنهادی که دادی !!!!
من میخوام اینکار رو بدون قطع شبکه انجام بدم .
از دوستان کسی دیگه ای نظری نداره ؟؟؟؟

danialafshari
سه شنبه 12 دی 1391, 17:55 عصر
سلام دوست عزیز
شما می تونی از یک winServis استفاده کنی یا یک برنامه مجزا از برنامه اصلی

مثلا یک فایل تکست بزاری روی اینترنت و بعد توسط تایمر هر مدتی که در تایمر مشخص کردید اون فایل تکست را چک می کند و بعد مثلا اگر True بود پروسس برنامه اصلی رو Kill کند و میتونه هم یک پیام بده و می تونی با استفاده از mutex از باز شدن برنامه تا پایان آپدیت جلوگیری کنی
امیدوارم خوب توضیح داده باشم

موفق باشی

jmfnima
چهارشنبه 13 دی 1391, 20:46 عصر
سلام دوست عزیز
شما می تونی از یک winServis استفاده کنی یا یک برنامه مجزا از برنامه اصلی

مثلا یک فایل تکست بزاری روی اینترنت و بعد توسط تایمر هر مدتی که در تایمر مشخص کردید اون فایل تکست را چک می کند و بعد مثلا اگر True بود پروسس برنامه اصلی رو Kill کند و میتونه هم یک پیام بده و می تونی با استفاده از mutex از باز شدن برنامه تا پایان آپدیت جلوگیری کنی
امیدوارم خوب توضیح داده باشم

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

danialafshari
چهارشنبه 13 دی 1391, 21:33 عصر
با سلام و تشکر از شما دوست عزیز
اگه میشه بیشتر توضیح بدین ممنون می شم .

سلام فکر کنم توضیحات کامله،اگر برنامه Adobe Reader شرکت Adobe رو نصب کرده باشید در Tray جفت ساعت یک برنامه Updater وجود دارد شما هم می تونی یک برنامه مشابهه همین بسازی
اینم کد برای kill کردن Process که در قسمت Updater است :
مثال :
Process[] prs = Process.GetProcesses();


foreach (Process pr in prs)
{
if (pr.ProcessName == "notepad")
{

pr.Kill();

}

}

موفق باشی

samadblaj
چهارشنبه 13 دی 1391, 22:21 عصر
سلام اینم یه کد بهینه تر برای بستن process خاص :

foreach (Process p in Process.GetProcessesByName("notepad"))
{
p.CloseMainWindow();
}

jmfnima
چهارشنبه 13 دی 1391, 22:43 عصر
سلام اینم یه کد بهینه تر برای بستن process خاص :

foreach (Process p in Process.GetProcessesByName("notepad"))
{
p.CloseMainWindow();
}
با تشکر از شما دوست عزیز
میشه بگین این کد رو باید کجای برنامه بنویسم تا در زمانی که خواسته باشم برنامه رو تحت شبکه داخلی آپدیت کنم نرم افزار توسط کاربرانی که باز شده یک پیغام براشون نشون داده بشه و بعد از مثلا یک دقیقه نرم افزار به صورت اتوماتیک بسته بشه ؟؟؟؟

danialafshari
پنج شنبه 14 دی 1391, 01:20 صبح
با تشکر از شما دوست عزیز
میشه بگین این کد رو باید کجای برنامه بنویسم تا در زمانی که خواسته باشم برنامه رو تحت شبکه داخلی آپدیت کنم نرم افزار توسط کاربرانی که باز شده یک پیغام براشون نشون داده بشه و بعد از مثلا یک دقیقه نرم افزار به صورت اتوماتیک بسته بشه ؟؟؟؟

معمولا در Timer