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

in vb.net webbrower

في الأربعاء أكتوبر 10, 2012 6:49 pm
ولاً : التعريف :

WebBrowser هي اداة تعمل عمل اي متصفح و بالاخص مثل المتصفح الشهير Internet Explorer
فهي تساعدك في تصفح المواقع من ناحية و التحكم في اكوادها HTML وكل ما يرتبط بها من ادخال و استخراج بيانات من ناحية اخرى.
واليكم هذا بالتفصيل >>


ثانياً : اهم الخصائص:

Name : اسم الاداة و الاسم الافتراضي هو 1 WebBrowser .

AllowNavigation : السماح للتصفح داخل الاداة وبها اختيارين :-
-True : السماح بالتصفح وهو الافتراضي .
-False : عدم السماح بالتصفح .

Dock : مكان الاداة و الازاحة الخاصه بها اي بمعنى مكان وجود الاداة في البرنامج دائما ثابته في الاعلى ام الاسفل ام اليسار ام اليمين ام الوسط ام حره (None).

Location : مكان الخاص بالاداة داخل البرنامج تبعا لخطوط الطول و العرض الموجوده داخل البرنامج
وهذه الخاصية لا تعمل الا اذا كانت الاداة حره في الخاصية Dock وبها حقلين :-
-X : المكان بالنسبه لخطوط العرض .
-Y : المكان بالنسبه لخطوط الطول .
-Locked : عدم تحريك الاداة ابدا من مكانها و بداخلها اختيارين :-
--True : تفعيل عدم تحريك الاداة ابدا .
--False : السماح بتحريك الاداة من مكانها .

Margin : الابتعاد عن الحواف وبها 4 حقول :-
-All : مقاس الابتعاد عن الحواف من جميع الجهات .
-Left : مقاس الابتعاد عن الحواف من جهة اليسار .
-Top : مقاس الابتعاد عن الحواف من الاعلى .
-Right : مقاس الابتعاد عن الحواف من جهة اليمين .
-Bottom : مقاس الابتعاد عن الحواف من الاسفل .

MaximumSize : الحد الاقصى لحجم الاداة وبها حقلين :-
-Width : مقاس العرض .
-Height : مقاس الطول .

MinimumSize : الحد الادنى لحجم الاداة و بها حقلين :-
-Width : مقاس العرض .
-Height : مقاس الطول .

ScrollBarsEnabled : خاصة بتفعيل شريط التمرير و بها حلقين :-
-True : السماح بتفعيل الشريط التمرير .
-False : عدم السماح بتفعيل الشريط التمرير .

Size : الحجم الحالي للاداة وبها اختيارين :-
-Width : مقاس العرض .
-Height : مقاس الطول.

TabStop : ايقاف استخدام زر Tab للتنقل داخل الاداة وبها اختيارين :-
-True : ايقاف تفعيل استخدام زر Tab .
-False : تفعيل استخدام زر Tab .

Url : رابط الموقع و لكن يجب اضافة //:http في بداية الرابط .

Visible : حالة الاداة من ناحية الظهور وبها اختيارين :--
-True : ظهور الاداة امام المستخدم .
-False : عدم ظهور الاداة اما المستخدم .


ثالثاً : اهم الاحداث(التصريحات) :

CanGoBackChanged : هذا الحدث خاص بحالة قدرة الاداة لتنفيذ امر الرجوع للصفحة السابقة ام لا ويمكن ايضا ان نستخدمها في تفعيل زر الرجوع او ايقافه .

CanGoForwardChanged : هذا الحدث خاص بحالة قدرة الاداة لتنفيذ امر الانتقال للامام (اي الصفحة التالية التي تم زيارتها من قبل) ام لا ويمكن ايضا ان نستخدمها في تفعيل زر الانتقال للامام او ايقافه .

DocumentCompleted : هذا الحدث خاص بما يحدث عندما تقوم الاداة باتمام فتح صفحة ما (اي تنفيذ اوامر عند الانتهاء من تحميل اي صفحة) .

DocumentTitleChanged : هذا الحدث خاص بما يحدث عندما يتغير عنوان الصفحة .
ملاحظة : عنوان الصفحة لمن لا يعرفه هو النص الذي يظهر في اعلى اي متصفح باسم الموقع ويكون موجود هذا النص داخل اكواد HTML الخاصة بالموقع داخل عنصر title على سبيل المثال : </title>هنا العنوان<title> .

Navigating : هذا الحدث خاص بما يحدث اثناء قيام الاداة بتحميل صفحة ما .

ProgressChanged : هذا الحدث خاص بمعرفة قيمة التغير(التحميل) الحادث اثناء تحميل اي صفحة .

StatusTextChanged : هذا الحدث خاص بمعرفة النص الخاص بحالة التصفح مثل تحميل صفحة ما او الانتهاء من تحميلها او عند الوقوف على رابط يظهر الرابط .


رابعاً : اهم الاكواد (هناك مثال مرفق به تطبيق شامل لكل هذه الخصائص و الاحداث و الاكواد)

اولاً : اكواد التصفح :-

فتح صفحة موقع
الكود:

WebBrowser1.Navigate("رابط الصفحة كامل")
فتح صفحة فارغة
الكود:

WebBrowser1.Navigate("about:blank")
الرجوع للصفحة السابقة
الكود:

WebBrowser1.GoBack()
الانتقال للصفحة التالية
الكود:

WebBrowser1.GoForward()
اعادة تحميل الصفحة
الكود:

WebBrowser1.Refresh()
ايقاف تحميل الصفحة
الكود:

WebBrowser1.Stop()

ثانياً : اكواد النوافذ الملحقة بالاداة :-

حفظ الصفحة
الكود:

Form1.WebBrowser1.ShowSaveAsDialog()
معاينة الصفحة قبل الطباعة
الكود:

Form1.WebBrowser1.ShowPrintPreviewDialog()
طباعة الصفحة
الكود:

Form1.WebBrowser1.ShowPrintDialog()
خصائص الصفحة
الكود:

Form1.WebBrowser1.ShowPropertiesDialog()
تنسيق الصفحة
الكود:

Form1.WebBrowser1.ShowPageSetupDialog()
رسالة تنبيه
الكود:

Form1.WebBrowser1.Document.Window.Alert("نص الرسالة")
فتح نافذة جديدة
الكود:

Dim url As String = WebBrowser1.Document.Url.ToString
        Dim frm As New Form1
        frm.Show()
        frm.WebBrowser1.Navigate(url)
رقم اصدار الاداة
الكود:

MsgBox(WebBrowser1.Version.ToString)
خامساً : التعاملات النصية :-
قص النص المحدد
الكود:

Form1.WebBrowser1.Document.ExecCommand("cut", True, DBNull.Value)
نسخ النص المحدد
الكود:

Form1.WebBrowser1.Document.ExecCommand("copy", True, DBNull.Value)
لصق النص في المكان المُفعل
الكود:

Form1.WebBrowser1.Document.ExecCommand("paste", True, DBNull.Value)
البحث داخل نصوص الاداة
الكود:

        Dim data As DataObject = Clipboard.GetDataObject 'الاحتفاظ بما تم نسخة
        Form1.WebBrowser1.Document.ExecCommand("Copy", False, Nothing)
        Form1.WebBrowser1.Focus()
        SendKeys.SendWait("^f")
        Clipboard.SetDataObject(data) 'ارجاع ما تم نسخة قبل عملية البحث
سادساً : التعامل مع محتوى الصفحة :-

اولاً : التعاملات العامة :-

استخراج نص الصفحة
الكود:

Form2.Text = "WebBrowser Get TEXT"
        Form2.RichTextBox1.Text = WebBrowser1.Document.Body.InnerText
        Form2.Show()
استخراج اكواد الصفحة
الكود:

Form2.Text = "WebBrowser Get HTML"
        Form2.RichTextBox1.Text = WebBrowser1.Document.GetElementsByTagName("HTML").Item(0).OuterHtml
        Form2.Show()
تحويل الصفحة الى نص
الكود:

Form1.WebBrowser1.Document.Body.InnerText = RichTextBox1.Text
تحويل الصفحة الى اكواد او نص
الكود:

Form1.WebBrowser1.Document.Body.InnerHtml = RichTextBox1.Text
ثانياً : التعاملات الخاصة بعناصر الصفحة :-


اولاً : GetElementById

الاستخراج
الكود:

MsgBox(Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).GetAttribute(اسم المطلوب محتواه))
الارسال
الكود:

Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).SetAttribute(اسم المرسل اليه,النص المرسل)
الضغط
الكود:

Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).InvokeMember("click")

ثانياً : GetElementsByTagName

الاستخراج
الكود:

        If (Form1.WebBrowser1.Document IsNot Nothing) Then
            Dim Elems As HtmlElementCollection
            Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1

            Elems = WebOC.Document.GetElementsByTagName(Tag اسم)

            For Each elem As HtmlElement In Elems
                Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
                If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
                    If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
                        Dim ContentStr As String = elem.GetAttribute(اسم القيمة المطلوبة)
                        MessageBox.Show(ContentStr)
                    End If
                End If
            Next
        End If
الكود:

        If (Form1.WebBrowser1.Document IsNot Nothing) Then
            Dim Elems As HtmlElementCollection
            Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1

            Elems = WebOC.Document.GetElementsByTagName(Tag اسم)

            For Each elem As HtmlElement In Elems
                Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
                If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
                    If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
                        elem.SetAttribute(اسم المرسل اليه, النص المرسل)
                    End If
                End If
            Next
        End If
الكود:

If (Form1.WebBrowser1.Document IsNot Nothing) Then
            Dim Elems As HtmlElementCollection
            Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1

            Elems = WebOC.Document.GetElementsByTagName(Tag اسم)

            For Each elem As HtmlElement In Elems
                Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
                If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
                    If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
                        elem.InvokeMember("click")

                    End If
                End If
            Next
        End If

ثالثا : All

الاستخراج
الكود:

MsgBox(Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InnerHtml)
الارسال
الكود:

Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InnerHtml = "النص"
الضغط
الكود:

Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InvokeMember("click")
سابعاً : تطبيقات على الاحداث (التصريحات)

CanGoBackChanged

[cod]
If WebBrowser1.CanGoBack Then 'ان كانت الاداة قادرة على الرجوع للخلف
Button1.Enabled = True ' تفعيل زر الرجوع للخلف
Else 'وان كانت غير قادرة
Button1.Enabled = False 'عدم تفعيل زر الرجوع للخلف
End If
CanGoForwardChanged
[/code]
الكود:

If WebBrowser1.CanGoForward Then 'ان كانت الاداة قادرة على الانتقال الى الصفحة التالية
            Button2.Enabled = True ' تفعيل زر الانتقال
        Else 'وان كانت غير قادرة
            Button2.Enabled = False 'عدم تفعيل زر الانتقال
        End If
DocumentCompleted
الكود:

TextBox1.Text = WebBrowser1.Url.ToString 'اظهار رابط الصفحة

        Button3.Enabled = True 'تفعيل زر اعادة التحميل
        Button4.Enabled = False 'الغاء تفعيل زر ايقاف تحميل الصفحة
DocumentTitleChanged
الكود:

title.Text = "TiTle : " & WebBrowser1.DocumentTitle ' عنوان الصفحة
Navigating
الكود:

Button3.Enabled = False 'الغاء تفعيل زر اعادة تحميل الصفحة
Button4.Enabled = True 'تفعيل زر ايقاف تحميل الصفحة
ProgressChanged
الكود:


ToolStripProgressBar1.Maximum = e.MaximumProgress ' تساوي اعلى قيمة انتهاء
تحميل الصفحة ToolStripProgressBar1 جعل اعلى قيمة لاداة
ToolStripProgressBar1.Value = e.CurrentProgress ' تساوي قيمة التحميل الحالية ToolStripProgressBar1 جعل القيمة الحالية لاداة
StatusTextChanged
الكود:

ToolStripLabel1.Text = WebBrowser1.StatusText ' يساوي نص الحالة الخاصة
بالاداة ToolStripLabel1 جعل نص
تم بحمد الله
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى