PDA

View Full Version : بستن برنامه در حال اجرا



Hossis
دوشنبه 16 بهمن 1391, 21:20 عصر
من یک برنامه نوشتم که روی شبکه کار می کنه و همزمان افراد زیادی اون رو باز دارند ولی وقتی می خوام آپدیت کنم و نسخه جدید رو کپی و جایگزین کنم, باید به همه بگم که ببندند و این کار رو سخت می کنه
نمی شه کاری کرد که برنامه های درحال اجرا رو با کد نویسی , ولو با یک برنامه جداگانه, ببندم تا بتونم کپی کنم؟
خلاصه این که راهی برای بستن برنامه به صورت کد نویسی وجود داره؟؟

Hossis
سه شنبه 17 بهمن 1391, 07:49 صبح
یعنی هیچ راهی نیست؟

mehdi_79
سه شنبه 17 بهمن 1391, 17:19 عصر
من با استفاده از ایجاد یک جدول مخصوص این کار در پایگاه داده توانستم این کار را انجام دهم
یک جدول تک فبلدی به نام app_setting ایجاد و یک ستون open_state از نوع int ایجاد و یک رکورد 1 یا 0 درون آن قرار می دهیم
سپس در فرم اصلی برنامه که با بستن ان برنامه بسته می شود یک تایمر اضافه کرده و رویداد آن را برای یک ثانیه تنظیم و درون آن دستور چک کردن مقدار اولین سطر ستون open_state را می دهیم که اگر مقدار 0 باشد فرم را ببندد
پس در حالت عادی open_state برابر 1 و برای بستن تمام برنامه ها آن را برابر 0 قرار میدهیم
نحوه ویرایش فیلد فوق می تواند از درون برنامه یا توسط یک برمامه کمکی یا با تغییر مستقیم فیلد در پایگاه داده انجام گیرد
به خاطر اینکه کابران پس از بستن برنامه قادر به بلز کردن مجدد آن نباشند می توان در هنگام باز شدن اولین فرم open_state را چک کرد اگر 0 بود برنامه باز نشود
البته این روش ابتکاری را خودم پیدا کرده ام و شاید دوستان راه بهتر داشته باشند
در ضمن شاید بتوان از TRIGGER و raiserror آن به جای تایمر استفاده کرد که با توجه به اینکه من از SQL server 2000 استفاده می کنم نتوانستم انجام دهم

Hossis
سه شنبه 17 بهمن 1391, 19:03 عصر
ممنون
خودم هم این ایده به ذهنم رسید ولی به جای این که در دیتابیس این مقدار رو بدم , یک فایل به صورت دستی به نام exit کنار برنامه ایجاد می کنم که با وجود اون, برنامه بسته بشه
چون برنامه ام از دیتابیس استفاده نمی کنه
به هر صورت ممنون از توجهتون!