ویدئو های پربازدید سایت

اجرای فقط یک نسخه از برنامه سی شارپ به روش mutex

گاهی اوقات لازم میشود تا فقط یک نسخه از یک نرم افزار اجرا شود
در این پست قصد اموزش این عمل را به کمک Mutex در سی شارپ که کاری بسیار اسان است را داریم

در پروژه ویندوفرم سی شارپ خود از بخش Solution فایل program.cs را باز کنید و کد را بصورت زیر تغییر دهید

        static void Main()
        {
            bool runed;
            System.Threading.Mutex mtx = new System.Threading.Mutex(true,"ApplicationName",out runed);
            if (!runed)
            {
                MessageBox.Show("برنامه در حال اجرا است");
            }
            else
            {
                Application.Run(new Form1());
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            
        }

گفتنی است در عبارت mutext پارامتر اول مقداری true میگیرد و مقدار دوم یک رشته با مقدار اختیاری که معمولا نام برنامه می باشد و مقدار سوم یک متغیر با مقدار خارجی از نوع bool
میگیرد
بعد از اجرا mutex حالا bool تعریف شده در اول دارای مقدار است (چون از نوع out داخل تابع میباشد)
با برسی درست یا اشتباه بودن مقدار runed میتوان وضعیت برنامه را تشخیص داد که اگر در حال اجرا است با اجرا مجدد یک پیام به کاربر نشان دهد
در غیر این صورت برنامه اجرا گردد


dapoxetine keflex 500mg betamethasone tube
pet prescription discount card blog.suntekusa.com cialis discount coupons
lamisil para que sirve go lamisil crema
cleocin cream mattnichols.co.uk cleocin ovuli
در صورتی که سوالی راجع به این آموزش دارید در بخش نظرات همین پست مطرح و از ارسال ان از بخش ارتباط با ما خود داری نمائید


;

ناشناس پاسخ

ممنون خیلی عالی بود ولی کاش کمی عمیق تر در مورد متد توضیح میدادین. 1394/2/28 10:14

مدیر سایت پاسخ

دوست عزیز الان امکان تست رو ندارم ولی فک کنم شما باید با متد
Application.OpenForms
در قسمت اجرای مجدد برنامه (همون بجای نمایش پیام) مثلا بشکل
Application.OpenForms[0].Activate() یا Show() استفاده کنید و یا
یک بخش proccess های سیستم رو به کمک System.Diagnostics.Proccess.GetProcess() چک کنید و در صورت یافتن نام برنامه خود اون رو اکتیو و یا فوکوس کنید
buscopan plus buscopan hund buscopan 10 mg
lamisil para que sirve lamisil comprimidos lamisil crema
1394/4/11 18:15

حسین استانستی پاسخ

عالی بود
1395/9/25 23:9

ali پاسخ

به جای مسیج باکس اگه بخوایم برنامه در حال اجرا فوکوس بشع چکار کنیم؟
cialis online coupon go cialis manufacturer coupon 2016
1394/4/11 15:55

فتاح پاسخ

اما تو این روش وقتی نرم افزار اول ریستارت بشه میشه یه نسخه جدا باز دوباره اجرا کرد چرا هیچ راه درست و حسابی واسه اجرای یک بار برنامه نیست خسته شدم انقد گشتم .. :| 1394/5/15 0:28

مدیر سایت پاسخ

منظورتونو درست متوجه نشدم
من اینطوری فهمیدم که اگر فرم اجرا شده رو ریستارت کنیم میشه برنامه رو مجدد اجرا کرد !
تست کردم فرم جدید اجرا نمیشه در حین ریستارت باز هم پیام برنامه در حال اجراس رو نمایش میده
اگه این نیست بیشتر توضیح بدین
pet prescription discount card new prescription coupons cialis discount coupons
kamagra gél chamceul.ind.ws kamagra ára
cleocin cream cleocin cream cleocin ovuli
enalapril 10 mg enalapril sandoz enalapril bivirkninger
1394/5/15 10:40

رضا جافری پاسخ

سلام این دستورات شما یک ایراد داره اگر در قسمت "ApplicationName" یک برنامه دیگه همین نام رو داشته باشه به احتمال زیاد مانع اجرای اون میشه ، بهتر از GUID برنامه استفاده بشه 1401/8/19 20:16

ویدئو هایی که شاید بپسندید!

هم اکنون نـــظر بدهید

HyperSourCe.ir

info@hypersource.ir

کلیه حقوق برای وب سایت هایپر سورس محفوظ است
CopyRight ©2014-2024
ارتباط با ما
نام شما
ایمیل
موبایل
رمز عبور را فراموش کرده ام

چگونه میتوانم این محصول را با تخفیف دریافت نمایم ؟

لطفا منتظر بمانید. . .

پیام سیستم