تقييم الموضوع :
  • 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() 
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تغير تاريخ الفورم ddemed 7 105 منذ 10 ساعة مضت
آخر رد: ddemed
  تثبيت التاريخ علي الفورم ddemed 4 107 08-12-16, 08:15 PM
آخر رد: ddemed
  تشغيل الفورم بالتاريخ الموجود في الملف ddemed 1 23 08-12-16, 08:12 PM
آخر رد: ddemed
  تشغيل الفورم بتاريخ ddemed 3 83 01-12-16, 05:41 PM
آخر رد: ddemed
  كيفيه تشغيل الفورم بالتاريخ الذي يحدده المستخدم ddemed 5 132 23-11-16, 10:12 PM
آخر رد: السرور
  استدعاء ملف به تاريخ للبرنامج وتشغيل الفورم به ddemed 8 161 11-11-16, 10:25 PM
آخر رد: bidaya
  التعديل الذي أقوم به في الفورم لا يظهر عند عمل RUN نسيم 8 205 07-11-16, 01:14 PM
آخر رد: zinom
Bug مشكلة في تصميم الفورم shwehdi4pc 4 129 31-10-16, 02:14 PM
آخر رد: shwehdi4pc
  تشغيل الفورم بتاريخ الضغط علي الزر ddemed 3 130 28-10-16, 10:01 AM
آخر رد: ddemed
  طباعة الفورم rabeh.ram 7 196 27-10-16, 04:13 AM
آخر رد: rabeh.ram

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


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