21-04-17, 05:33 PM
21-04-17, 05:58 PM
النوع هذا من الكونترول إما أن تشتريه من شركات او تكتب الكود الخاص به بنفسك
و علي ما أعتقد بعض المواقع البرمجية بها كود مفتوح المصدر لمثل هذا النوع من الكونترول
عموما الحل الاسهل لك هو ان تستخدم الكلاس StopWatch بحيث تبدأ الكلاس عند الضغط علي اللينك و الكلاس علي ما اعتقد به عداد ثم تقوم بإيقاف الكلاس عند الانتهاء من تحميل الصفحة بالكامل
و علي ما أعتقد بعض المواقع البرمجية بها كود مفتوح المصدر لمثل هذا النوع من الكونترول
عموما الحل الاسهل لك هو ان تستخدم الكلاس StopWatch بحيث تبدأ الكلاس عند الضغط علي اللينك و الكلاس علي ما اعتقد به عداد ثم تقوم بإيقاف الكلاس عند الانتهاء من تحميل الصفحة بالكامل
21-04-17, 06:10 PM
اخى اشترى ايه ؟ انا اصدى زاى برنامج التحميل كده لما باجى احمل رابط بيبقى فى عداد بيقراء سرعة النت الخاصة بى وهو بيحمل انا عايز بدل ما يقراء السرعة من ملف تحميل لا يقراءة عند تشغيل رابط فى الويب فى المشروع الخاص بى بس
اخى انا بحثت كثير ولكن مش عارف اعملو عشان كده قولت حد بساعدنى بالكود
اخى انا بحثت كثير ولكن مش عارف اعملو عشان كده قولت حد بساعدنى بالكود
21-04-17, 06:25 PM
انا فقط حين رأيت الصورة الموجودة في سؤالك اعتقدت انك تريد استخدام كونترول مشابه للموجود في الصورة
استخدم ProgressBar مع الكلاس StopWacth بحيث ان ProgressBar تاخذ القيمة الخاصة بها من StopWach
,وهذا الاسهل لك تماما لأن كتابة الكود الخاصة به ستكون سهلة و بسيطة
عموما بعض المبرمجين يستخدمون BackgroundWorker بهدف تنفيذ الفكرة الخاصة بك وهي نفس الفكرة التي قد تراها في برامج downLoad
انا لم اعمل مع WebBrwoser لكن أفترض اأنه به شئ اسمه PageLoaded و بها عليك ان تقوم بإيقاف العداد الخاص ب StopWatch
استخدم ProgressBar مع الكلاس StopWacth بحيث ان ProgressBar تاخذ القيمة الخاصة بها من StopWach
,وهذا الاسهل لك تماما لأن كتابة الكود الخاصة به ستكون سهلة و بسيطة
عموما بعض المبرمجين يستخدمون BackgroundWorker بهدف تنفيذ الفكرة الخاصة بك وهي نفس الفكرة التي قد تراها في برامج downLoad
انا لم اعمل مع WebBrwoser لكن أفترض اأنه به شئ اسمه PageLoaded و بها عليك ان تقوم بإيقاف العداد الخاص ب StopWatch
21-04-17, 06:34 PM
طيب ممكن تعمل الكود بعد ازنك وشكرااااا
لا انا عايزو يشتغل مع الويب
لا انا عايزو يشتغل مع الويب
21-04-17, 10:06 PM
السلام عليكم اخي الكريم
انا رديت عليك في موضوع سابق بس واضح ان وجهة نظري لم تكن واضحة بما يكفي
قلت ان الموضوع ليس بالبساطة اللتي تتصورها لعدة اسباب
لحساب سرعة تحميل مجموعة من البيانات يجب ان يكون لك القدرة على معرفة مقدار البيانات الواردة في فترة معينة
للاسف الاداة web browser لا تتيح ذلك بحسب علمي
في المثال اللذي ارفقته لك في الموضوع السابق
https://code.msdn.microsoft.com/windowsd...0a#content
في مثاله ذلك يستفيد من الكلاس PerformanceCounter واللذي يقوم بمراقبة قيم معينة في البرامج اللتي تعمل وكذلك قيم خاصة بالحاسب نقسه ، مثل القيم لتي تقوم ال Task manager بمراقبتها ( cpu , memory usage والى اخره )
وبمقدور ايضا هذا الكلاس ان يراقب كم البيانات الداخلة والخارجة من برنامج معين يعمل على ".NET CLR Networking 4.0.0.0"
ولكن للاسف الاداده web browser لم يتم تطويرها على ال ( .net 4 ) فلا يستطيع ال PerformanceCounter ان يراقبها ( اعتقد ذلك هو السبب )
ولكنه يستطيع ان يراقب كمية البيانات الداخلة والخارجة من البرنامج فيما عدا ذلك ، كأن تقوم بتحميل ملف مثلا دون الحاجة ل webbrowser
في هذه الحالة سيكون بالامكان مراقبتها وتحديد سرعة البيانات ( او سرعة الداونلود )
في الحقيقة لست بحاجة ان تتعمق اكثر من ذلك في ال PerformanceCounter ففي المثال اعلاه قام باعداد كلاس لتسهيل التعامل معها واسماه NetworkTraffic
في مثاله يقوم بعرض صفحة في اداه Webbrowser و كذلك يقوم بتحميل ملف كمثال ، وتلاحظ بان السرعة تكون حقيقة فقط في حالة تحميل الملف
فانت الان امامك حل من 2 :
ان تجد طريقة لعرض ما تريد بدون اللجوء للاداه web browser كأن تستخدم ادوات عرض محتوى انترنت بديلة تم تطويرها باستخدام ( .net 4 )
او ان تستخدم web browser وتعرض السرعة المسحوبة من الجهاز كله ( وليس من البرنامج فقط ) وهذا امر بسيط وهناك طرق كثيره لمراقبه ذلك
عموما سأحاول ان اجد لك حلا لذلك ،
وارفقت لك مثال يقوم بتحميل ملف برابط معين وكذلك يقوم بالدخول على صفحة ويب معينة بطريقتين ، قياس استهلاك الانترنت ككل ، واستهلاك البرنامج فقط
الكود بسيط ، ولكن اذا اردت شرح للكود اخبرني
[attachment=13972]
انا رديت عليك في موضوع سابق بس واضح ان وجهة نظري لم تكن واضحة بما يكفي
قلت ان الموضوع ليس بالبساطة اللتي تتصورها لعدة اسباب
لحساب سرعة تحميل مجموعة من البيانات يجب ان يكون لك القدرة على معرفة مقدار البيانات الواردة في فترة معينة
للاسف الاداة web browser لا تتيح ذلك بحسب علمي
في المثال اللذي ارفقته لك في الموضوع السابق
https://code.msdn.microsoft.com/windowsd...0a#content
في مثاله ذلك يستفيد من الكلاس PerformanceCounter واللذي يقوم بمراقبة قيم معينة في البرامج اللتي تعمل وكذلك قيم خاصة بالحاسب نقسه ، مثل القيم لتي تقوم ال Task manager بمراقبتها ( cpu , memory usage والى اخره )
وبمقدور ايضا هذا الكلاس ان يراقب كم البيانات الداخلة والخارجة من برنامج معين يعمل على ".NET CLR Networking 4.0.0.0"
ولكن للاسف الاداده web browser لم يتم تطويرها على ال ( .net 4 ) فلا يستطيع ال PerformanceCounter ان يراقبها ( اعتقد ذلك هو السبب )
ولكنه يستطيع ان يراقب كمية البيانات الداخلة والخارجة من البرنامج فيما عدا ذلك ، كأن تقوم بتحميل ملف مثلا دون الحاجة ل webbrowser
في هذه الحالة سيكون بالامكان مراقبتها وتحديد سرعة البيانات ( او سرعة الداونلود )
في الحقيقة لست بحاجة ان تتعمق اكثر من ذلك في ال PerformanceCounter ففي المثال اعلاه قام باعداد كلاس لتسهيل التعامل معها واسماه NetworkTraffic
في مثاله يقوم بعرض صفحة في اداه Webbrowser و كذلك يقوم بتحميل ملف كمثال ، وتلاحظ بان السرعة تكون حقيقة فقط في حالة تحميل الملف
فانت الان امامك حل من 2 :
ان تجد طريقة لعرض ما تريد بدون اللجوء للاداه web browser كأن تستخدم ادوات عرض محتوى انترنت بديلة تم تطويرها باستخدام ( .net 4 )
او ان تستخدم web browser وتعرض السرعة المسحوبة من الجهاز كله ( وليس من البرنامج فقط ) وهذا امر بسيط وهناك طرق كثيره لمراقبه ذلك
عموما سأحاول ان اجد لك حلا لذلك ،
وارفقت لك مثال يقوم بتحميل ملف برابط معين وكذلك يقوم بالدخول على صفحة ويب معينة بطريقتين ، قياس استهلاك الانترنت ككل ، واستهلاك البرنامج فقط
الكود بسيط ، ولكن اذا اردت شرح للكود اخبرني
[attachment=13972]
22-04-17, 04:26 AM
لو الأمر مرتبط فعليا بموضوع NetworkInformation فالأمور تختلف قليلا لكن ما زال من الممكن الحصول علي سرعة الانترنت او أي معلومات مشابهة عن طريق استخدام الكلاس Progress Of T و ذلك بأن تمرر لها الكلاس NetworkInformation
22-04-17, 06:06 AM
الكود التالي سيوضح لك كيف تعمل في الخلفية للحصول علي سرعة النت
للأسف انا معلوماتي ضعيفة جدا في التعامل مع كلاسات النت لذلك وبعد إلقاء نظرة سريعة علي بعض كلاسات النت
يمكنك ان تستخدم الكود التالي ليعطيك فكرة بسيطة عن كيفية الاجابة علي سؤالك
لتنفيذ الكود افتح مشروع بسيط و ضع علي الفورم باتون و Label
ثم اكتب الكود بالشكل التالي
وأفترض هنا انك متصل بالنت عند تنفيذ الكود
للأسف انا معلوماتي ضعيفة جدا في التعامل مع كلاسات النت لذلك وبعد إلقاء نظرة سريعة علي بعض كلاسات النت
يمكنك ان تستخدم الكود التالي ليعطيك فكرة بسيطة عن كيفية الاجابة علي سؤالك
لتنفيذ الكود افتح مشروع بسيط و ضع علي الفورم باتون و Label
ثم اكتب الكود بالشكل التالي
وأفترض هنا انك متصل بالنت عند تنفيذ الكود
PHP كود :
Private Async Function InvokeNetworkInterface(delay As Integer, progress As IProgress(Of NetworkInterface())) As Task
Dim c As Integer = 0
While c <= Integer.MaxValue
Await Task.Delay(delay)
progress.Report(NetworkInterface.GetAllNetworkInterfaces())
c += delay
End While
End Function
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim delay As Integer = 100
Dim p As New Progress(Of NetworkInterface())(AddressOf ShowSpeed)
' OR
'Dim p As New Progress(Of NetworkInterface())(Sub(adapters As NetworkInterface())
' Label1.Text = adapters(0).Speed
' End Sub)
Await InvokeNetworkInterface(delay, p)
End Sub
Private Sub ShowSpeed(adapters As NetworkInterface())
Label1.Text = adapters(0).Speed
End Sub