شاطر
اذهب الى الأسفل
عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
معاينة صفحة البيانات الشخصي للعضو

التعامل مع الرجسترى 3 مثال تعليمى

في الأحد نوفمبر 11, 2012 7:49 pm
التعامل مع الرجستري باستخدام فيجوال بيسك دوت نت


اذا كنت مهتما و تود اكتشاف هذا العالم ، سيكون هذا الدرس ان شاء الله مدخلك وبداية طريقك لاكتشاف هذا العالم.
ملاحظة: هذا الدرس موجه الي المبتدئين والمتوسطين وهو تعليمي وليس احترافي، كما سبق القول فهو فقط مدخل مبسط .
ﻹستعاب هذه الدروس جيدا سنعمل علي مثال بسيط يقربنا من فهم الشيفرات المستعلة ويزيل عنا عبئ البحث بين صفحات الكتب ومتاهة روابط المواقع والمنتديات التعليمية المليئة بالدروس والكتب و في الأخر لا تجد ما تبحث عنه،وباختصار أرجو من الله أن يكون هذا الدرس المتواضع الحل الشافي لمعناتك،ويكون فاتحة خير ﻹستعابك مفاهيم أخرى،والله ولي التوفيق.

للرجستري استعملات عدة من بينها حفظ اعدادات البرنامج و حفظ بعض القيم لاستعمالها لاحقا و غيرها ...
ثانيا:
أضف فورم 2 وصممه علي الشكل التالي:

أولا: قم بانشاء مشروع جديد بعنوان : lesson Registry .
وصمم الفورم علي الشكل التالي :




قم بتغير خاصية Name للنص الأول الي UserName و النص الثاني الي PassWord .
+ كتابة الشيفرات .
* أولا يجب عليك استدعاء مجال الأسماء Microsoft.Win32
وذلك علي الشكل التالي

الكود:

Imports Microsoft.Win32
* ثانيا تعريف متغير سنستعمله للوصول الي الرجستري :
الكود:

Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")

كما تلاحظ عرفت متغير باسم RecSami وأنشئت مفتاح باسم Key Sami داخل CurrentUser , ويمكنك إختيار ما تشاء من الأماكن لانشاء المفتاح كما هو موضح في الصورة أسفله .



+ كتابة الشيفرات :
دوبل كليك علي زر إنشاء حساب أو Create Account .
وبعد ذلك نقوم بكتابة الشفرة التالية :
الكود:

If UserName.Text = "" Or PassWord.Text = "" Then
            MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Create Account")
        Else
            RecSami.SetValue("Username", UserName.Text)
            RecSami.SetValue("PassWord", PassWord.Text)
  End If

+إذا كان عندك بعض الغموض اقرأ تحليل الشيفرة وإذا كنت عكس ذلك فأكمل المشوار.
+تحليل الشيفرة:

الكود:

If UserName.Text = "" Or PassWord.Text = "" Then
            MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again","Create Account")
اذا كان نص كتابة اسم المستخدم أو رمز الدخول أو كلاهما معا فارغا سيضهر البرنامج رسالة تخبر المستخدم أن نص كتابة اسم المستخدم أو رمز الدخول فارغ .

الكود:

Else
            RecSami.SetValue("Username", UserName.Text)
            RecSami.SetValue("PassWord", PassWord.Text)
  End If

ثانيا وبعد أن تحقق من نصوص الكتابة ينشئ حساب باسم Key Sami ويضع فيه اسم المستخدم و رمز الدخول الموجودةفي نصوص الكتابة.





كما تلاحظ بالفعل تمكنا من الكتابة داخل الرجستري قيم ستحفظ بداخله يمكن التعديل عليها .

الشيفرات الخاصة بالفورم1 ستكون علي الشكل التالي :

الكود:

Imports Microsoft.Win32
Public Class Form1
    Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'code Create Account
        If UserName.Text = "" Or PassWord.Text = "" Then
            MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Create Account")
        Else
            RecSami.SetValue("Username", UserName.Text)
            RecSami.SetValue("PassWord", PassWord.Text)
        End If

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'code cancel
        End
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

       
        'code button Ok
        If UserName.Text = "" Or PassWord.Text = "" Then
            MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Enter To My Account")
        Else
            If UserName.Text = RecSami.GetValue("UserName") And PassWord.Text = RecSami.GetValue("PassWord") Then
                Form2.Show()
                Me.Hide()
            Else
                MessageBox.Show("The UserName Or PassWord Text Is Incorrect Please Try Again", "Enter To My Account")
            End If
        End If

    End Sub
End Class



قم بتغير خاصية Name للنص الأول الي UserName و النص الثاني الي PassWord و النص التالث الي txtWrite
كما العادة استدعي مجال الأسماء Microsoft.Win32
وقم بتعريف نفس المتغير الذي استعملناه في الفورم1
الكود:

    Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")

+ وفي الفورم لود (Form2_Load ) أكتب الشفرات التالية :

الكود:

Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        On Error Resume Next
        UserName.Text = RecSami.GetValue("UserName")
        PassWord.Text = RecSami.GetValue("PassWord")
        txtWrite.Text = RecSami.GetValue("txtWrite")

End Sub
ومحتواها أننا نعرض اسم المستخدم و رمز الدخول في أداتي النص 1 و2 و النص المحفوظ في الرجستري مسبقاالي أداة النص 3 "txtWrite"
+ الأن نضع شفرة الحفظ Save .
الكود:

RecSami.SetValue("txtWrite", txtWrite.Text)
و الهدف منها حفظ ما تغير في أداة txtWrite.Text

*ربما قد تقول لي ماذا لو نسي المستخدم الضغط علي زر الحفظ وأغلق البرنامج وكان قد عدل علي أدة النص ، أقول لك مصيبة فلن يتم حفظ ما تغير ، ولتجنب هذا المشكل أقترح عليك حلا يمنع وقوع هذا الخطئ .
+ استعرض أحداث الفورم و أنقر علي FormClosed وأكتب الشفرة التالية :
الكود:

  Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As          System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

          RecSami.SetValue("txtWrite", txtWrite.Text)

        End Sub

بهذا عند اغلاق المستخدم البرنامج سيتم حفظ ما تغير .
+ كتابة الشفرة الخاصة باستعراض الصورة Browse
أولا أضف أداة OpenFileDialog وغير خاصية Name الي open

الكود:

open.Title = "Browse Picture"
        open.ShowDialog()
        Picture.Image = Image.FromFile(open.FileName)
        RecSami.SetValue("Picture", open.FileName)

+ وفي الفورم لود أضف الشفرة التالية :

الكود:

Picture.Image = Image.FromFile(RecSami.GetValue("Picture"))
+ مناقشة الشفرات السابة :
أداة OpenFileDialog تستخدم لاستعراض الملفات و الصور أي جلبها من علي الحسوب ، أود أن أشرح لك تفاصيل هذه الأداة ولكن لا أود أن أضيف سطور إضافية لهذا الكتاب لأنه يوجد الكثير لأخبرك عن هذه الأداة، وفي اعتقادي أنك ستفهم الشفرة السابة بمجهودك الخاص .
+ والنتيجة ستون علي الشكل التالي :

الشيفرات الخاصة بالفورم2 ستكون علي الشكل التالي :
الكود:

 End Sub

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        On Error Resume Next
        UserName.Text = RecSami.GetValue("UserName")
        PassWord.Text = RecSami.GetValue("PassWord")
        txtWrite.Text = RecSami.GetValue("txtWrite")
        Picture.Image = Image.FromFile(RecSami.GetValue("Picture"))

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'code button Exit
        End

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'code button Empty
        txtWrite.Text = ""

    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'code button save
        RecSami.SetValue("txtWrite", txtWrite.Text)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        open.Title = "Browse Picture"
        open.ShowDialog()
        Picture.Image = Image.FromFile(open.FileName)
        RecSami.SetValue("Picture", open.FileName)

    End Sub
End Class
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى