جلو گیری از اجرای مجدد برنامه ها در سی شارپ
دیده اید که برنامه های ویندوز را فقط می توان یکبار باز نمود ولی برای اینکه کاری کنیم که برنامه هایی را که ساخته ایم پس از یکبار اجرا یعنی زمانی که برنامه باز است کاربر نتواند دوباره این برنامه را باز کند و خلاصه ی کلام اینکه در یک زمان معین فقط یک مرتبه بتوان آن را گشود .
برای این کار ابتدا فضای نام System.Diagnostics رو به پروژه خود اضافه کنید و کد زیر رو در قسمت Main چروژه وارد کنید
“فایل Progaram.cs”
1 2 3 4 5 6 7 8 9 10 11 12 |
int i = 0; Process Currentproc = Process.GetCurrentProcess(); Process[] proc = Process.GetProcesses(); foreach (Process item in proc) { if (Currentproc.ProcessName == item.ProcessName) i++; } if (i > 1) { MessageBox.Show("Press any Key To Exit... "); return; } |
کد بسیار ساده میباشد.خلاصه کد این است دوشی از کلاس Process ایجاد کرده ایم
اولی با متد GetCurrentProcess پراسس مربوط به برنامه را دراختیار میگیرد
دومی به صورت ارایه تعریف شده و با متد GetProcesses که خروجی آن ارایه ای از پراسس هاست پر میشود
با یک حلقه Foreach ارایه چراسس را پیمایش میکنیم و با یک شرط بررسی میکنیم که پروسسی با نام پراسس فعلی
ما وجود دارد یا نه در صورت موجود بودن i++ میشود و در پایان اگر i بزرگتر از ۱ بود یعنی برنامه قبلا اجرا شده
به همین سادگی
موفق باشید.
یک پاسخ
با سلام
ممنون مطلب خیلی مفید و کاربردی بود
موفق و پیروز باشید