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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] حفظ الفورم (Form) (البرنامج) بعد التغيير visualist2015 8 6,460 12-04-24, 04:07 AM
آخر رد: أبو جودة
Photo [VB.NET] مشكلة في شكل الفورم abuyazan 5 305 27-02-24, 09:38 PM
آخر رد: aljzazy
  [VB.NET] مشكلة ظهور textbox بعد حذفه من الفورم مبرمج صغير 1 1 231 27-01-24, 02:04 AM
آخر رد: مبرمج صغير 1
  [VB.NET] تحويل التاريخ بين أداتين تايم بيكر في نفس الفورم محمد العموري 1 276 29-12-23, 10:44 PM
آخر رد: Kamil
  كيفية التحكم فى حجم الفورم من خلال الكود Ahmed.vb 4 514 11-10-23, 07:17 PM
آخر رد: bidaya
Photo [سؤال] كيف أقوم بإجبار التطبيق (الفورم) على حفظ الملف المستعاد من قاعدة البيانات SQL server salam82 3 470 20-09-23, 01:42 PM
آخر رد: salam82
Exclamation اعدادات التطبيق application settings ims.ataya 2 2,100 01-09-23, 04:36 AM
آخر رد: اسامه الهرماوي
  [VB.NET] نسخ الصور من الفورم الى الوورد صبيح 1 311 17-08-23, 03:03 PM
آخر رد: تركي الحلواني
  [VB.NET] احتاج كود يغلق جميع الفورم ويبقي فقط الفورم Home Ali_hassn 4 549 15-08-23, 06:43 PM
آخر رد: Alexander Max2
  سؤال حول اغلاق جميع النوافذالمفتوحة maherhaddaf 3 460 20-07-23, 08:48 AM
آخر رد: maherhaddaf

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


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