تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
WebBrowser IN VB.NET
#1
السلام عليكم ورحمة الله وبركاته

تحية طيبة لاعضاء المنتدى الكرام و الادارة الطيبة و نسأل الله ان ينفعنا جميعاً بما علمنا
موضوع اليوم عن اداة واهم ما يتعلق بها من خصائص و احداث و اوامر و كيفيك التعامل معها بطريقة مرنه وبسيطه

[b]



اولاً : التعريف :

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 : هذا الحدث خاص بمعرفة النص الخاص بحالة التصفح مثل تحميل صفحة ما او الانتهاء من تحميلها او عند الوقوف على رابط يظهر الرابط .


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

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

فتح صفحة موقع
[/b]


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


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


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


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


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


كود :
WebBrowser1.Stop()
[b]


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

حفظ الصفحة
[/b]


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


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


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


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


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


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


كود :
Dim url As String = WebBrowser1.Document.Url.ToString
Dim frm As New Form1
frm.Show()
frm.WebBrowser1.Navigate(url)
[b]

رقم اصدار الاداة
[/b]


كود :
MsgBox(WebBrowser1.Version.ToString)
[b]

خامساً : التعاملات النصية :-
قص النص المحدد
[/b]


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


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


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


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

سادساً : التعامل مع محتوى الصفحة :-

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

استخراج نص الصفحة
[/b]


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


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


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


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


اولاً : GetElementById

الاستخراج
[/b]


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


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


كود :
Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).InvokeMember("click")
[b]


ثانياً : GetElementsByTagName

الاستخراج
[/b]


كود :
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
[b]
الارسال
[/b]


كود :
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
[b]
الضغط
[/b]


كود :
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
[b]
ثالثا : All

الاستخراج
[/b]


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


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


كود :
Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InvokeMember("click")
[b]

سابعاً : تطبيقات على الاحداث (التصريحات)

CanGoBackChanged
[/b]


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


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


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

       Button3.Enabled = True 'تفعيل زر اعادة التحميل
       Button4.Enabled = False 'الغاء تفعيل زر ايقاف تحميل الصفحة
[b]
DocumentTitleChanged
[/b]


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


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


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


كود :
ToolStripLabel1.Text = WebBrowser1.StatusText ' يساوي نص الحالة الخاصة بالاداة  ToolStripLabel1 جعل نص
[b]


تم بحمد الله
المثال موجود بالمرفقات به تطبيق لكل هذه الاكواد

وان كان هناك اي تعقيب او مناقشة انا متواجد ان شاء الله

اخوكم/ مؤمن
[/b]



الملفات المرفقة
.zip   WebBrowser.zip (الحجم : 643.97 ك ب / التحميلات : 152)
الرد }}}}
تم الشكر بواسطة: sniperjawadino , Mostafa Saad
#2
مبدع شكراً لك
الرد }}}}
تم الشكر بواسطة:
#3
بارك الله فيك اخي الكريم :d
تم التقييم
تحياتي لك
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}}
تم الشكر بواسطة:
#4
جميل جدا باارك الله فيك Smile
الرد }}}}
تم الشكر بواسطة:
#5
ما شاء الله

الى الامام
الرد }}}}
تم الشكر بواسطة:
#6
أشكركم جميعا ولو في مساعدة خاصة بالاداء انا متواجد ان شاء الله
الرد }}}}
تم الشكر بواسطة:
#7
يعطيك الف عافية , موضوع اكثر من رائع
الرد }}}}
تم الشكر بواسطة:
#8
تشكر على مجهودك الكبير
الرد }}}}
تم الشكر بواسطة:
#9
الادة هذه حيرتني كثيرا
لدي سوئال دلوقتي انا عايز ابرمج برنامج لانشاء ايميل علي الياهو
طب هربط كود الكابتاشا ازاي بي البرنامج بتاعي
يعني عايز اضيف كود الكابتاشا في البرنامج واضيف كام بوتن لو ضغط علي واحد فيهم يغير كود الكابتاشا ؟
الرد }}}}
تم الشكر بواسطة:
#10
MoSHaX كتب :الادة هذه حيرتني كثيرا
لدي سوئال دلوقتي انا عايز ابرمج برنامج لانشاء ايميل علي الياهو
طب هربط كود الكابتاشا ازاي بي البرنامج بتاعي
يعني عايز اضيف كود الكابتاشا في البرنامج واضيف كام بوتن لو ضغط علي واحد فيهم يغير كود الكابتاشا ؟

اهلا اخي مشاكس
حضرتك ممكن تضع سؤالك في القسم الخاص بالاسئلة و ان شاء الله الاخوه تقدم الحلول اللازمه و ان شاء الله لو يتم ايجاد الحل المناسب بعد انتهاء العمل الذي اقوم به الان سأقدم مشروع مبني على سؤالك الذي سيتم طرحه في قسم الاسئلة
[h=1]

قسم الاسئلة : فيجوال بيسك دوت نت VB.NET
[/h]
تحياتي لك
اخوك/مؤمن
الرد }}}}
تم الشكر بواسطة:


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


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