تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حفظ اعدادات serial port بعد اغلاق الفورم فى vb net
#1
السلام عليكم ورحمة الله وبركاته 
من فضلكم اخوانى الافاضل ,لدي برنامج فليكسي جاهز  للعمل والتحزيم , لكن بقيت تعوقني مشكلة صغيرة واصبحت
كبيرة بالنسبة لي ,الا وهي عند فتح البرنامج والاتصال ب com و فتح البورت يعمل البرنامج بطريقة عادية وعند اغلاق البرنامج 
او الجهاز باكمله واعادة فتح البرنامج من جديد  لا يعمل البرنامج حتى اعيد  الاتصال ب com و فتح البورت من جديد .
اخواني الكرام ,اريد اعدادات حفظ البورت مفتوح بعد اغلاق الفورم او البرنامج فى ملف رجيستري او ملف تاكست او اسهل طريقة ممكنة لحفظ الاعدادت.
الرد }}}}
تم الشكر بواسطة:
#2
و عليكم السلام و رحمة الله و بركاته
اليك طريقة لحفظ الاعدادت في مسجل النظام
بالاول انشأ مفاتيح بعدد القيم التي تريد حفظها في عقدة رئيسية(مجلد)
انا افضل الحفظ في عقدة CurrentUser
انشأ مديول وحط الاجراء التالي

PHP كود :
    Dim VBArb As RegistryKey

    Public Sub CreateKeyes
()

 
       If Registry.CurrentUser.OpenSubKey("VB4ArbKyes"Is Nothing Then
            Dim VB4ArbKyes 
As RegistryKey Registry.CurrentUser.CreateSubKey("VB4ArbKyes")
 
           VBArb VB4ArbKyes.CreateSubKey("Key1")
 
           VBArb VB4ArbKyes.CreateSubKey("Key2")
 
           VBArb VB4ArbKyes.CreateSubKey("Ket3")
 
           VBArb VB4ArbKyes.CreateSubKey("Key4")
 
               End If
 
   End Sub 


استدعي هذا الاجراء في اول اقلاع البرنامج

بعد ذلك اخي الكريم حاول حفظ القيم في المفاتيح عبر الدالة التالية (في المديول)

PHP كود :
   Public Sub SetValueKey(ByVal KeyNmae As StringByVal Value As String)
 
       If Not IsNothing(My.Computer.Registry.CurrentUser.OpenSubKey("VB4ArbKyes")) Then
            My
.Computer.Registry.CurrentUser.OpenSubKey("VB4ArbKyes"True).OpenSubKey(KeyNmaeTrue).SetValue(KeyNmaeValue)
 
       End If

 
   End Sub 

و لحفظ القيمة بداخلها ما عليك الا استدعائها كالتالي في المكان الذي تريده
PHP كود :
           SetValueKey("Key1"TextBox1.Text.Trim

و لمعرفة قيمة اي مفتاح اليك هذه الدالة (في المديول)
PHP كود :
   Public Function GetValueKey(ByVal SubKeyName As String) As String
        Dim Value 
As String ""
 
       If Not IsNothing(My.Computer.Registry.CurrentUser.OpenSubKey("VB4ArbKyes")) Then
            Value 
My.Computer.Registry.CurrentUser.OpenSubKey("VB4ArbKyes").OpenSubKey(SubKeyName).GetValue(SubKeyName)
 
           Return Value
        Else
            Return 
""
 
       End If
 
       Return Value

    End 
Function 

و الاستدعاء بسيط وفق الشكل التالي
PHP كود :
TextBox1.Text GetValueKey("Key1"

بالتوفيق اخي الكريم
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}}
تم الشكر بواسطة: ممدوح , ممدوح
#3
بعد إذن أخي ابو ليلى يمكنه اختصار الموضوع من خلال الخاصية ApplicationSettings الموجودة ضمن خصائص الأداة ومنها PropertyBinding ينشء مسمى لأي خاصية يريد حفظها
الرد }}}}
تم الشكر بواسطة: ابو ليلى
#4
شكرا لك اخي ابو ليلى  على هده الاكواد  و لكن بعد التجربة لم يحدت شيء , ولكن لدي سؤال  
هل كل الاكواد اضعها في مديول واحد؟  وبالنسبة  لحفظ القيم  و استدعائها
هل يمكن ان  اضعها فى الفورم لود
و بالنسبة لحفظ اعدادات السريال بورت  لم اجد  الطريقة لحفظها  
و اما الاخ ممدوح  فبالنسبة  للخاصية  ApplicationSettings الموجودة ضمن خصائص الأداة
فاني قمت بتجربتها  فهي ناجحة  فى حفظ الاعدادات  لكن مشكلتي هي حفظ اعدادات  السريال بورت  و التي لم اجد لها الطريقة لحفظها
فمن كانت لديه طريقة لحفظها  فليمددها لي  او حتى عن طريق مثال تجريبي  لاني بامس الحاجة اليه و شكرا لكم مجددا على مبادراتكم القيمة
الرد }}}}
تم الشكر بواسطة:
#5
ما هي البيانات التي تحتاج إلي أن تحفظها من SerialPort؟
حاول تكتب لي البيانات او الصفات بالترتيب
الرد }}}}
تم الشكر بواسطة:
#6
شكرا لك اخي silverlight  سوف اشرح الطريقة حتى تصل لك الفكرة بطريقة مبسطة
اولا لدي combobox   للبورت كوم مثلا  com1,com2  الخ....  و button لعمل connect و الاتصال بالكوم وفتح البورت
اي بمعنى يصبح serialport1.open ما اريده هو ان يبقى serialport.Open  مفتوح حتى و لو
بعد غلق البرنامج  او جهاز الكمبيوتر  اي بمعنى عند فتح البرنامج مرة اخرى  لا اعيد الاتصال بالكوم من جديد  اى اكمل عملي بطريقة عادية
و اما عن البيانات التي يجب علي حفظها هي  serialport1.portname  و  (serialport1.open) مع ان هده الخاصية غير موجودة
في ادوات serialport
الرد }}}}
تم الشكر بواسطة:
#7
بشكل مبدئي فإن أقل مشاكلك هي حفظ PortName في ملف ثم استرجاع تلك البيانات
انا القيت نظرة سريعة علي SerialPort كلاس و هذا الكلاس به صفه اسمها IsOpen و منها تحدد هل Port مغلق ام مفتوح
أيضا معظم صفات الكلاس يمكن حفظها في ملف ومن هذه الصفات

PortName
IsOpen
StopBits
Parity
handshake
الرد }}}}
تم الشكر بواسطة:
#8
اخي silverlight طبقت الكلاس اللي عملتو لكنه لم يفي بالغرض اي عندما اغلق البرنامج واعادة فتحه
يلزمني الاتصال بالكوم من جديد
اخي هل يمكنك عمل مثال كامل مع شرح بعض الخطوات التى يلزم شرحها
ولك مني كل الشكر والاحترام
الرد }}}}
تم الشكر بواسطة:
#9
حاول تستخدم الكود التالي
لكن لتضع ف اعتبارك الكود بهذا الشكل سوف يجعل البورت مفتوحا الي مالا نهاية و قد تحتاج الي اغلاق الكمبيوتر او اغلاق البرنامج من
Task Manager


PHP كود :
       Dim source As New System.Threading.CancellationTokenSource()
 
       Dim token As System.Threading.CancellationToken source.Token
        Dim t 
= New Task(Sub()
 
                            While True
                                 
If token.IsCancellationRequested Then
                                     
Return
 
                                End If

 
                                ' اكتب الكود اللازم لفتح البورت هنا

                             End While

                         End Sub, token)

        t.RunSynchronously() 
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة الفورم الشفاف محمود صالح 2 129 14-09-17, 04:59 PM
آخر رد: محمود صالح
Big Grin [كود] شباب طريقة لإظهار الادوات بشكل شبه مخفى وليس الفورم badr.kamel 3 125 14-09-17, 05:07 AM
آخر رد: Mohamad Anan
  اريد كود لتحقق ان كان الفورم مفتوح ام لا The Light Fire 2 81 11-09-17, 06:57 PM
آخر رد: The Light Fire
  ايه فايدة التقاير لما ممكن اطبع الفورم ؟؟؟ نبيل كونكت 1 83 22-08-17, 11:59 AM
آخر رد: حريف برمجة
Sad [سؤال] مشكلة اغلاق البرنامج عند فتحة . MohamedAllam 11 335 19-07-17, 03:42 PM
آخر رد: MohamedAllam
  [VB.NET] مشكلة في حفظ اعدادات المشروع سعود الشامان 13 620 16-07-17, 12:42 PM
آخر رد: أبوبكر سويدان
  مشكلة في عرض الفورم وتضهر هذه الرساله eng_yuyu 1 140 14-07-17, 08:56 PM
آخر رد: سعود
  [سؤال] اريد كود يغير اعدادات النظام مثل التاريخ والوقت Mina Botros 8 189 07-07-17, 10:43 PM
آخر رد: Mina Botros
  سؤال فى صورة الفورم الرئيسى salah mansour 7 266 05-07-17, 08:54 PM
آخر رد: salah mansour
  السيريال نامبر(serial number) للقرص الصلب (hard disk) مبرمج مصرى 10 377 28-06-17, 11:45 AM
آخر رد: sendbad100

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


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