منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة مغلبانى جدا من فترة مع هذا الكود Do While
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوتى

عامل برنامج نشر على جروبات الفيس وجالب الجروبات داخل 

DataGridView



وكل ما بجربه بالكود اللى فى الاسفل ينشر فى اول جروب وينتقل بعدها مباشرا

لآخر جروب وينشر فيه ويتجاهل باقى الجروبات التى ما بين اول جروب واخر جروب

يعنى لو عندى مثلا 10 جروبات بينشر فى الاول وفى العاشر فقط ويتجاهل الباقى

ومش عارف اين الخأ فى الكود هذا وجزاكم الله كل خير.....







وهذا كود النشر 






PHP كود :
 Try
            Dim i 
As Integer 0

            Do 
While <= DataGridView1.RowCount
                WebBrowser1
.Navigate(DataGridView1.Rows(i).Cells(0).Value.ToString)
 
               WebBrowser1.Document.GetElementById("u_0_0").InnerText TextBox1.Text
                WebBrowser1
.Document.GetElementById("view_post").InvokeMember("click")
 
               i 1
            Loop




        Catch ex 
As Exception
        End 
Try 
حاول مع loop بالشكل التالي
PHP كود :
While DataGridView1.RowCount

 i 
1

End 
While 
(18-08-17, 02:04 AM)سعود كتب : [ -> ]
طيب اخي الكريم
احذف جملة Try لكي يظهر نص الخطا  ولا تضعها حتى يكون الخطا محصور على امور خارج عمل المبرمج.

ايضا استخدم الجملة بالطريقة التالية:
كود :
[align=center][b]        Dim i As Integer = 0[/b][/align]
[align=center][b]        Do While i <= DataGridView1.Rows.Count - (IIf(Me.DataGridView1.AllowUserToAddRows, 2, 1))[/b][/align]
[align=center][b]            ListBox1.Items.Add("row: " & i)[/b][/align]
[align=center][b]            i += 1[/b][/align]
[align=center][b]        Loop[/b][/align]
[align=center][b][/b][/align]

واضح يا اخى انك لم تفهم مرادى بالتحديد.
انا عامل برنامج بينشر فى جروبات الفيس بوك والجروبات داخل الداتا جريد وحضرتك وضعت ليست بوكس
وهى ليست من ضمن الادوات اصلا....
باختصار هذه صورة للبرنامج واريده ينشر فى كل الجروبات اللى داخل الداتا جريد



او لو تعرف ازاى يتم تحديد العناصر اللى داخل الداتا جريد فيو واحد تلو الاخر
يعنى يتم تحديد اول عنصر وبعد المدة اللى احددها يزيل التحديد من اول عنصر وينزل لتحددي العنصر
الذى يليه وهكذا الى ان يتم الانتهاء من جميع العناصر الموجودة
(18-08-17, 03:08 AM)سعود كتب : [ -> ]
إقتباس :وحضرتك وضعت ليست بوكس
انت قلت انه لا يتم التطبيق الا على اول صف واخر صف فقط لذلك احببت ان اطبق بالكود الذي كتبته ولم اجد اشكالية فيه.
.
.
.
لم تعلق على الغاء جملة Try
هل سيظهر خطا؟

حضرتك هذا هو المشروع وهو فعلا محيرنى من فترة فاتمنى ان تلقى نظرة عليه

https://up.top4top.net/downloadf-594dpp0q1-rar.html
(18-08-17, 03:35 AM)سعود كتب : [ -> ]
(18-08-17, 03:29 AM)ابو روضة كتب : [ -> ]
(18-08-17, 03:08 AM)سعود كتب : [ -> ]
إقتباس :وحضرتك وضعت ليست بوكس
انت قلت انه لا يتم التطبيق الا على اول صف واخر صف فقط لذلك احببت ان اطبق بالكود الذي كتبته ولم اجد اشكالية فيه.
.
.
.
لم تعلق على الغاء جملة Try
هل سيظهر خطا؟

حضرتك هذا هو المشروع وهو فعلا محيرنى من فترة فاتمنى ان تلقى نظرة عليه

https://up.top4top.net/downloadf-594dpp0q1-rar.html


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

لو هناك ضرر فمش مهم اخى ويكفى محاولتك معى مع انى كنت ساكتب
فى العنوان الى اخى سعود لكن لا عليك يا غالى
(18-08-17, 03:53 AM)سعود كتب : [ -> ]
Timer1_Tick
طيب اخي الكريم
هل انت متاكد ان المؤقت يصلح ان يستخدم  لمثل هذه الاجراءات؟
هو يعد كل مدة تحددها ولا يلتفت لانتهاء اجراء معين لكي ينتقل لاخر.
على كل حال لو يطلع احد ممن لديه خبرة ربما يعطيك حل افضل  واسهل.
الكود التالي (وحسب خبرتي البسيطة) يناسب ان تضعه بمسارThread مستقل اما Backgroundworker او بطريقة عادية.
كود :
[align=center]  Try[/align]
[align=center]            For i As Integer = 0 To DataGridView1.RowCount[/align]
[align=center][/align]
[align=center]                WebBrowser1.Navigate(DataGridView1.Rows(i).Cells(0).Value.ToString())[/align]
[align=center][/align]
[align=center]                WebBrowser1.Document.GetElementById("u_0_0").InnerText = TextBox1.Text[/align]
[align=center]                WebBrowser1.Document.GetElementById("view_post").InvokeMember("click")[/align]
[align=center][/align]
[align=center]                Await Task.Delay(CInt(Fix(NumericUpDown1.Value)) * 1000)[/align]
[align=center]                i = i + 1[/align]
[align=center]            Next[/align]
[align=center]        Catch ex As Exception[/align]
[align=center]            'Throw[/align]
[align=center]            'MsgBox("انتهت عملية النشر", MsgBoxStyle.Information, "لا تنسى الصلاة على النبى محمد")[/align]
[align=center]        End Try[/align]

لو تجرب تطبيق فكرة العد بحلقة For  ضمن مؤقت على اداة بسيطة مثل Listbox ربما تتفاجا بالنتيجة.
حاولت اجرب وضع كلمة Async لاجراء المؤقت الذي لدي قلت لعله يغير من اسلوبه ولكنه لم يعمل.
ربما هو السر الذي تبحث عنه جرب  ماقلته لك وباذن الله ستنحل  المشكلة.

هذا الكود بالسى شارب ويعمل تمام لكنه بالسيلينام يمكن تعرف الحل من خلاله

كود :
   try
           {

         


           for (int i = 0; i < dataGridView1.RowCount; i++)
           {
               post.Navigate().GoToUrl(dataGridView1.Rows[i].Cells[0].Value.ToString());
               title = post.Title;
               IWebElement postes = post.FindElement(By.Id("u_0_0"));
               IWebElement postbox = post.FindElement(By.Name("view_post"));
               postes.SendKeys(textBox3.Text);
               postbox.Click();
               await Task.Delay((int)numericUpDown1.Value * 1000);
               //await Task.Delay(1000);
           }
       }
             
           catch (Exception)
           {
               
               throw;
           }
(18-08-17, 04:41 AM)سعود كتب : [ -> ]
إقتباس :هذا الكود بالسى شارب ويعمل تمام لكنه بالسيلينام يمكن تعرف الحل من خلاله
السي شارب اجد صعوبة في التعامل معه
(بالسيلينام ) ..هذي لا اعرفها.

لكن مادام يعمل تمام بالسي شارب فلماذا تتعب نفسك بفيجوال بيسك؟!Smile

لان السيلينام تعمل داخل المتصفح ويكون مفتوح فأردت عملها فى الويب براوزر من داخل البرنامج...
فى انتظار احد الاخوة الافاضل وجزاك الله كل خير اخى ومعلش تعبتك
السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة تحية طيبة

هل المطلوب هو وضع منشور على كل المجموعات لمرة واحدة 
ام المطلوب تكرار وضع المنشور في كل مجموعة با ستخدام التايمر ؟؟؟
لان استخدام التايمر يعيد نفسه كل فترة محددة و لا فائدة منه

ثانياً : ليتم تحصيل عنوان المجموعة بعد عمل Navigate , يحتاج المتصفح لوقت حتى يحمل الصفحة المطلوبة و الاولى معالجة الاحداث الخاصة بالنشر بعد اكتمال تحميل الصفحة.
فاما ان ننقل وظائف النشر الى الحدث WebPageCompleted او ان نتحقق من اكتمال تحميل الصفحة و من ثم نقوم بعمل نشر .
(18-08-17, 11:00 PM)ابو ليلى كتب : [ -> ]السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة تحية طيبة

هل المطلوب هو وضع منشور على كل المجموعات لمرة واحدة 
ام المطلوب تكرار وضع المنشور في كل مجموعة با ستخدام التايمر ؟؟؟
لان استخدام التايمر يعيد نفسه كل فترة محددة و لا فائدة منه

ثانياً : ليتم تحصيل عنوان المجموعة بعد عمل Navigate , يحتاج المتصفح لوقت حتى يحمل الصفحة المطلوبة و الاولى معالجة الاحداث الخاصة بالنشر بعد اكتمال تحميل الصفحة.
فاما ان ننقل وظائف النشر الى الحدث WebPageCompleted او ان نتحقق من اكتمال تحميل الصفحة و من ثم نقوم بعمل نشر .

عليكم السلام ورحمة الله وبركاته...
مرحبا اخى العزيز أبو ليلى.
المطلوب كالأتى:-
انا بكتب منشور فى التكست بوكس وأريده أن يتم نشره فى كل المجموعات
بوقت محدد أنا أحدده يعنى مثلا كل 10 دقائق يتم نشر المنشور فى مجموعة ومن ثم ينتقل لينشر فى المجموعة التى تليها وهكذا الى أن يتم النشر فى كل المجموعات ثم يتوقف عن النشر...
وسواء بتايمر أو غيره فهذا لا يهمنى المهم هو ان يعمل حلقة تكرارية على كل المجموعات.
وجزاك الله كل خير اخى
تمام  ...
اول محاولة للنشر فيسبوك يحذر (تم حذف المنشور  منشور مخادع .... راجع البريد الوارد) ؟؟
الموضوع يحتاج مراجعة لبعض الامور (النشر يتم على حساب تجريبي تم انشائه الان)
نصف ساعة و اعود لك ... انتظرني
الصفحات : 1 2