تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مثال علي عدم فتح البرنامج مره اخري
#1
السلام عليكم اخوتي الافاضل
من باب العلم والافاده

فقد بحثت كثيرا عن كود يجعل البرنامج عند فتحه مره اخري وكان مفتوح من قبل تظهر رساله تفيد بأن البرنامج مفتوح من قبل
هناك خياراسمه (Make single instance application) ولكن هدا الخيار يجبر البرنامج بعدم فتحه مره اخري
ولكن ممكن العميل ما ياخدش باله ان البرنامج مفتوح ويظن ان البرنامج فيه مشكله لانه بيضغط عليه ومفيش حاجه بتتفتح
فلابد من ظهور رساله تفيد بان البرنامج مفتوح 
واظن ان ده هيكون افضل
بحثت كثيرا والحمد لله وجدت حل 
قمت بشرحه لكم علشان الكل يستفيد:

1- نقوم بعمل متغير في Setting  ونسميه مثلا CheckOpen ويكون من نوع  Boolean ونجعل قيمته الافتراضيه False
2-في حدث ال Load  نقوم بكتابة الكود التالي : 


PHP كود :
If My.Settings.CheckOpen True Then
            MsgBox
("البرنامج مفتوح بالفعل")
 
           End
        Else
            My
.Settings.CheckOpen True
            My
.Settings.Save()
 
           Me.Show()
 
       End If 
3- في حدث ال Form_Close  او في زر غلق البرنامج نقوم بكتابة الكود التالي :

PHP كود :
My.Settings.CheckOpen False
        My
.Settings.Save()

 
       Close() 


مرفق مثال لعله يفيد بعض الاخوه.


.rar   Open Project.rar (الحجم : 62.15 ك ب / التحميلات : 48)
الرد
#2
السلام عليكم و رحمة الله و بركاته
بارك الله فيك أخي الكريم على المثال الرائع و مشاركتنا إيّاه
للإضافة و تنوّع الأفكار يمكن جعل هذا الكود بأوّل فورم لودْ بالمشروع فهو يفي بالغرض بطريقة جيّدة
كود :
 Dim appProc() As Process
       Dim strModName, strProcName As String
       strModName = Process.GetCurrentProcess.MainModule.ModuleName
       strProcName = System.IO.Path.GetFileNameWithoutExtension(strModName)
       appProc = Process.GetProcessesByName(strProcName)
       If appProc.Length > 1 Then
           MessageBox.Show("توجد نسخة ثانية من المنظومة قيد التّشغيل .. سيتم الخروج نهائيًا")
           End
       End If

تحياتي
الرد
#3
وعليكم السلام ورحمة الله وبركاته
مرحباً اخى Emam emam

جزاك الله خيراً على الاضافة الجميلة والطريقة البسيطة والرائعة
الطريقة التى تستخدمها رائعة وسهل فهمها لدا الجميع

ولكن تقع مشكلة بسيطة ممكن تقول عنها كونها نقطة ضعف بالكود
وهو اذا تم نسخ ملف البرنامج الى مجلد اخر ستتمكن من فتح البرنامج مري  اخري
وهذا كون طريقة الـ Settings تعتمد على مسار البرنامج ويتم تفريغ الـ Settings
كلما تم نقل البرنامج من مسار الى مسار اخر وهذا للافادة ولكي تعم الفائدة لك وللجميع

سيتم نقل الموضوع الى القسم الصحيح حتى يعم فائدة الموضوع للاخرين

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: Emam emam , ابراهيم ايبو , asemshahen5
#4
(17-10-19, 01:42 AM)عبد العزيز البسكري كتب :
السلام عليكم و رحمة الله و بركاته
بارك الله فيك أخي الكريم على المثال الرائع و مشاركتنا إيّاه
للإضافة و تنوّع الأفكار يمكن جعل هذا الكود بأوّل فورم لودْ بالمشروع فهو يفي بالغرض بطريقة جيّدة
كود :
 Dim appProc() As Process
       Dim strModName, strProcName As String
       strModName = Process.GetCurrentProcess.MainModule.ModuleName
       strProcName = System.IO.Path.GetFileNameWithoutExtension(strModName)
       appProc = Process.GetProcessesByName(strProcName)
       If appProc.Length > 1 Then
           MessageBox.Show("توجد نسخة ثانية من المنظومة قيد التّشغيل .. سيتم الخروج نهائيًا")
           End
       End If

تحياتي
الف شكر لك اخي وحبيبي  عبدالعزيز البسكري علي هده الاضافه الجميله وجزاك الله كل خير

(17-10-19, 03:45 PM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته
مرحباً اخى Emam emam

جزاك الله خيراً على الاضافة الجميلة والطريقة البسيطة والرائعة
الطريقة التى تستخدمها رائعة وسهل فهمها لدا الجميع

ولكن تقع مشكلة بسيطة ممكن تقول عنها كونها نقطة ضعف بالكود
وهو اذا تم نسخ ملف البرنامج الى مجلد اخر ستتمكن من فتح البرنامج مري  اخري
وهذا كون طريقة الـ Settings تعتمد على مسار البرنامج ويتم تفريغ الـ Settings
كلما تم نقل البرنامج من مسار الى مسار اخر وهذا للافادة ولكي تعم الفائدة لك وللجميع

سيتم نقل الموضوع الى القسم الصحيح حتى يعم فائدة الموضوع للاخرين

تحياتى لك
وتمنياتى لك التوفيق

الف شكر لك استادنا وجبيبنا الغالي elgoker  علي هده اللمسه والمعلومه الجميله جزاك الله خيرا
الرد
تم الشكر بواسطة: elgokr , ابراهيم ايبو , asemshahen5
#5
الشكر لله والحمد لله
والحمد لله على كل حال

نحن دائماً نتعلم من بعضنا اخى الحبيب
تخيل عندما يقال لكل مشكلة 1000 حل

فهذه هى البرمجة لكل طريقة تريد ان تتعامل معها
اكثر من اسولب يمكنك فعل بها الامر ليعطي نفس النتيجة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5 , Emam emam


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مثال عن الباركود asemshahen5 20 2,691 22-03-20, 07:05 PM
آخر رد: asemshahen5
  ينفع اعمل الحركه دي في البرنامج ؟ modywassemmody 0 118 10-03-20, 03:18 PM
آخر رد: modywassemmody
  شباب كنت عاوز اعمل البرنامج ده ؟ modywassemmody 1 111 07-03-20, 08:07 PM
آخر رد: محمد ايمن
Smile [VB.NET] {تم التعديل}مثال حول استخدام مكتبات جوجل درايف معاند الحظ 2 140 07-03-20, 01:47 PM
آخر رد: معاند الحظ
  مطلوب مثال لعمل جرد بالبار كود new_programer 3 164 07-03-20, 01:03 AM
آخر رد: asemshahen5
  [VB.NET] مثال بسيط عن كيفية عمل برنامج المصحف كمثال موقع [ quran.ksu.edu.sa ] elgokr 10 1,986 01-02-20, 09:35 PM
آخر رد: egypt 2020
  تفعيل البرنامج بواسطة الانترنت العتيق 7 638 09-01-20, 09:46 PM
آخر رد: atefkhalf2004
  تركيب البرنامج على جهاز واحد فقط @@أبورائد@@ 23 14,935 20-12-19, 04:16 PM
آخر رد: مصمم هاوي
  حماية البرنامج بسريال الفلاش عن طريق ملف اكس امل ال على Dropbox asemshahen5 19 2,674 29-11-19, 10:53 PM
آخر رد: fullas44
  ابسط مثال للتصاريح سعود 44 18,581 25-11-19, 01:06 AM
آخر رد: EMADSSS

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم