(02-09-17, 05:43 PM)سعود كتب : [ -> ]إقتباس :مع ان هذا ليس ما اريده
الصراحة الموضوع هذا(موضوع التاخير) عجزت افهمه
.
.
.
اذكر لنا فكرة معينة :لعبة خدعة
اي شيء المهم يحتاج تطبيقها فكرة التاخير لعلني او غيري يتمكن من فهم المقصود الذي لم اتمكن من فهمه منذ البداية بدليل انك لم تحصل على الجواب.
.
.
موضوعنا الاصلي فلنؤخره قليلا.
سافترض شيئا.
انك تود عمل شيء معين مثلا تغيير لون نص بعد مدة 3 ثواني.
هل هذا وارد بالفكرة لديك؟
ولا يهمك حبيبى...
بص انا هاقولك مقصدى..
مثلا انا هاستعمل اداة ويب براوزر واريد من الزر ان يقوم اولا مايلى:-
إدخال رابط فيديو فى موقع مثلا لتحميل الفيديوهات فحينما يتم تجهيز الرابط المباشر للفيديو
يأخذ حاولى 7 ثوانى فأقول للبرنامج مثلا انتظر 10 ثوانى وبعدها أجلب صورة الفيديو وينتظر 5 ثوانى
ثم يقوم بالتحميل....
مثال لما قولته.
PHP كود :
'جلب الصورة
Dim allB As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("img")
For Each bt As HtmlElement In allB
If bt.GetAttribute("className") = "thumb" Then
PictureBox2.ImageLocation = bt.GetAttribute("src")
Exit For
End If
Next
'انتظار 4 ثوانى
Await Task.Delay(2000)
'جلب الروابط
Dim inputs As HtmlElementCollection
inputs = WebBrowser1.Document.GetElementsByTagName("a")
For Each item As HtmlElement In inputs
If item.GetAttribute("href").Contains("videoplayback") Then
CheckedListBox1.Items.Add(item.GetAttribute("href").ToString)
End If
Next item
'Label1.Text = " عدد السور " & ListBox1.Items.Count
'انتظار ثانيتين
Await Task.Delay(2000)
'جلب الاسم
Dim allBtn As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
For Each bt As HtmlElement In allBtn
If bt.GetAttribute("className") = "meta" Then
TextBox2.Text = bt.InnerText
وهلم جرا..........
جرب هذا الكود اخى الذى كتبته انت من دقائق "
وانظر ماذا سيحدث فهو اولا يجعل البرنامج يهنج والأهم انه لا ينتظر فى كل أمر
بل يدمج كل ال sleep مع بعضهم أى ينتظر مرة واحدة ثم ينفذ كل الكود مرة واحدة ايضا...
وانا بالفعل ذكرت لك المشكلة حينما قولت
إقتباس :اخى سعود هل هناك بديل ال (Async) Await Task.Delay ؟؟؟
بحيث أنفذ أوامر على مراحل أحددها أنا ؟ فهويؤدى الغرض بالفعل لكن
انا أريد استبدالة بطريقة أخرى تعمل على الفيجوال 2010 لآن ال 2012 يسبب لى بعض ثقل فى الجهاز
أما بالنسبة لجوابك هذا
إقتباس :استخدام الباكقرواند وركر اسهل لانه يحتوي على ثلاث
فلم أفهمه أو إن شئت فقل مش هاعرف أعملها للأسف فلو تعرف انت تنفذها على الكود الذى كتبته او اى كود اخر
يبقى انت كدة حليت لى مشكلة عويصة
(02-09-17, 07:13 PM)سعود كتب : [ -> ]بصراحة لم افهم التعامل مع الويب براوزر على نحو الكود الذي كتبته انت لكن.
الاخ ابو ليلى الم تذكر انه فعل المطلوب في سؤال لك سابق؟
ادرس ماذكرته لك باشياء بسيطة وبعدها طبق ماتراه مناسبا.
لا لم يذكر لى احد هذا الحل وانا ارى ان الموضوع انخرط بعيدا عن موضوعنا الاصلى وانا السبب طبعا فعذراً..
ايه رأيك نحذف كل التعليقات السابقة التى تخص هذا السؤال ليكون موضوعنا اساسى لا يحيد عن ال HtmlAgilityPack ؟؟
(02-09-17, 07:31 PM)سعود كتب : [ -> ]طيب لا عليك من موضوع التعليقات.
المهم اللي ارجوه انك تحاول قدر المستطاع فهم الباكقراوند
حاليا اصمم مثال يحتوي على 3 باكقراوند كل واحد له مهمة
جاري العمل على المثال.
تمام حبيبى ربنا يكرمك..... احب الشخص المتحمس ذو الهمة العالية
ده اللى قدرت اعمله حاجة بسيطة عارف بس ماشى الحال
(03-09-17, 12:56 AM)سعود كتب : [ -> ] (03-09-17, 12:11 AM)ابو روضة كتب : [ -> ]ده اللى قدرت اعمله حاجة بسيطة عارف بس ماشى الحال
جاري الاطلاع عليه
لفت انتباهي شي بالمثال
ما الداعي من هذا
كماهو مبين بالصورة؟
الصراحة ماعمري اشتغلت بـAsync ولا Delay ولا حسيت اني بحاجتها.
لكن الكود بحدث اللود غير محبذ
Control.CheckForIllegalCrossThreadCalls = False
شوف التعديل
كود :
Public Class Form1
Private Sub lbl(ByVal l As String)
If Label1.InvokeRequired Then
Label1.Invoke(New Action(Of String)(AddressOf lbl), l)
Else
Label1.Text = l
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.ProgressBar1.Maximum = 100
If Me.BackgroundWorker1.IsBusy = False Then
BackgroundWorker1.RunWorkerAsync()
End If
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For i = 0 To 100
If Me.BackgroundWorker1.CancellationPending Then Exit For : Exit Sub
lbl(i)
BackgroundWorker1.ReportProgress(i)
System.Threading.Thread.Sleep(200)
Next
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
lbl("خلاص يا عم سعود ههههههه")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
BackgroundWorker1.CancelAsync()
End Sub
End Class
المرفق معدل
تمام اخى دعك بقى من كل هذا ونرجع لموضوعنا الاساسى....
الرابط اللى قولت لك عليه جلبته لكن بالويب براوزر وانا حابب فعلا اتاعمل مع HtmlAgilityPack
لانى احببتها جدا والفضل لله اولا ثم انت
(03-09-17, 04:12 AM)سعود كتب : [ -> ]ايش كان غرضك من الويب براوزر؟
هل هو التعامل مع نقرات الازرار؟؟؟
ان كان نعم فلا غنى عنها مع جهلي بها وعدم تجربتها من قبل.
لان الـHtmlAgilityPack فقط تحليل صفحات و اظهار نتائج.
الموضوع كلو زي بعضو يعني سواء ناقشنا موضوع HtmlAgilityPack او موضوع Backgroundworker فكلا الامرين مرتبطان ببعضهما.
خصوصا لو اردنا البعد عن التهنيق وقد نحتاج الويب براوزر لكن من دون نافذة لاقتناص مالم نتمكن من اقتناصه بغيرها.
يعنى مثلا حاولت اجيب الرابط بهذا الكود لكن بجيب خطأ لكن لما بجيب النص بجيبوا عادى
Dim url As String = "http://live.cima4u.tv/Video/Bambi II 2006 -10499.html"
Dim hWeb As HtmlAgilityPack.HtmlWeb = New HtmlAgilityPack.HtmlWeb
Dim doc As HtmlAgilityPack.HtmlDocument = hWeb.Load(url, "GET")
Dim node As HtmlAgilityPack.HtmlNode = doc.DocumentNode.SelectNodes("/html/body/div[4]/div/div[3]")(0)
'ListBox1.Items.Add(node.Attributes("href").Value)
TextBox1.Text = node.InnerText
الخطأ هنا
'ListBox1.Items.Add(node.Attributes("href").Value
الحمدلله جلبته بهذا الكود بعد المحاولات
PHP كود :
Dim url As String = "http://live.cima4u.tv/Video/Bambi II 2006 -10499.html"
Dim hWeb As HtmlAgilityPack.HtmlWeb = New HtmlAgilityPack.HtmlWeb
Dim doc As HtmlAgilityPack.HtmlDocument = hWeb.Load(url, "GET")
Dim node As HtmlAgilityPack.HtmlNode = doc.DocumentNode.SelectNodes("/html/body/div[4]/div/div[3]/div/a")(0)
TextBox1.Text = (node.Attributes("href").Value)
جلب هذا
http://upbom.com/5vufbv15o1eo/CR005.Bambi_II_[2006]_1080p_Arabic.Cima4U.mkv.html
طيب هل رابط مباشر؟
لم الحظ ذلك.
هل تريد مشاهدة الفيديو ام ماذا
(03-09-17, 05:08 AM)سعود كتب : [ -> ]طيب هل رابط مباشر؟
لم الحظ ذلك.
هل تريد مشاهدة الفيديو ام ماذا
للأسف مش مباشر.....
انا لا اريد شيئ من الفيديو لكنى احببت فعلا ال HtmlAgilityPack وبحاول
أعمل برنامج تحميل بها بالاستعانة بالويب براوزر
لكن لا اريد اى شيئ من اى رابط من كل هذا...