منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] كود لمعرفة الحاسوب متصل بالشبكة أم لا - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] كود لمعرفة الحاسوب متصل بالشبكة أم لا (/showthread.php?tid=29720)

الصفحات: 1 2


كود لمعرفة الحاسوب متصل بالشبكة أم لا - sniperjawadino - 30-05-19

وضعت هذا الكود في تايمر كل تانية Timer
بحيت يعلمني هل الحاسوب الذي به قاعدة البيانات متصل بالشبكة أم لا 

الكل شغال لكن عند سقوط الشبكة يتشنش البرنامج
و يتوقف الكل

أين الخطأ إخواني

على العلم إني استنتجت أن التايمر يتوقف عند السطر الأول فيأخد وقت طويل ليكتشف أنه الفولدر غير موجود
كود :
       If My.Computer.FileSystem.FileExists(Trim("\\192.168.13.249\test")) = True Then
           Label_CONNEXION.ForeColor = Color.Lime
       Else
           Label_CONNEXION.ForeColor = Color.Red
       End If



RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - سعود - 31-05-19

مارايك بكود التحقق من عنوان الجهاز الرئيسي بغض النظر عن المجلد ؟

PHP كود :
       Label2.Text ""
 
       Label2.BackColor Me.BackColor
        If My
.Computer.Network.IsAvailable Then
            If My
.Computer.Network.Ping(tip.Text) = False Then
                Label2
.Text "غير متصل"
 
               Label2.ForeColor Color.Red
            Else
                Label2
.Text " متصل"
 
               Label2.ForeColor Color.Green
            End 
If
 
       Else
            Label2
.Text " لا توجد شبكة متصلة"
 
           Label2.ForeColor Color.White
            Label2
.BackColor Color.Black
        End 
If 

فقط ليكون اقتراحي مكتملSmile






RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sniperjawadino - 31-05-19

شكرا أخي سعود حقا التحقق من عنوان الجهاز أسرع من التحقق من وجود مجلد

بحيث يأخد الأول ثانيتين ليصلك الجواب
أما التاني فأكثر من 30 تانية

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


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sami4 - 31-05-19

(30-05-19, 08:43 PM)sniperjawadino كتب : وضعت هذا الكود في تايمر كل تانية Timer
بحيت يعلمني هل الحاسوب الذي به قاعدة البيانات متصل بالشبكة أم لا 

الكل شغال لكن عند سقوط الشبكة يتشنش البرنامج
و يتوقف الكل

أين الخطأ إخواني

على العلم إني استنتجت أن التايمر يتوقف عند السطر الأول فيأخد وقت طويل ليكتشف أنه الفولدر غير موجود
كود :
       If My.Computer.FileSystem.FileExists(Trim("\\192.168.13.249\test")) = True Then
           Label_CONNEXION.ForeColor = Color.Lime
       Else
           Label_CONNEXION.ForeColor = Color.Red
       End If

(31-05-19, 12:39 AM)سعود كتب : مارايك بكود التحقق من عنوان الجهاز الرئيسي بغض النظر عن المجلد ؟

PHP كود :
       Label2.Text ""
 
       Label2.BackColor Me.BackColor
        If My
.Computer.Network.IsAvailable Then
            If My
.Computer.Network.Ping(tip.Text) = False Then
                Label2
.Text "غير متصل"
 
               Label2.ForeColor Color.Red
            Else
                Label2
.Text " متصل"
 
               Label2.ForeColor Color.Green
            End 
If
 
       Else
            Label2
.Text " لا توجد شبكة متصلة"
 
           Label2.ForeColor Color.White
            Label2
.BackColor Color.Black
        End 
If 

فقط ليكون اقتراحي مكتملSmile




(31-05-19, 12:41 PM)sniperjawadino كتب : شكرا أخي سعود حقا التحقق من عنوان الجهاز أسرع من التحقق من وجود مجلد

بحيث يأخد الأول ثانيتين ليصلك الجواب
أما التاني فأكثر من 30 تانية

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


هذا كود يتم استدعائه مره واحده بالرغم ان فيه كود يعالج تكرار الاستدعاء

استدعيه في حدث تحميل الفورم مثلا

اعتمدت طريقت اظهار الحاله من رد الاستاذ سعود
واضفت اليه من اكواد بعض الاعضاء التي احتفظت بها لدي في ملف نصي

عند اللزوم غير اسم الليبل واسم التكست بوكس المشار اليهم بالكومنت

Public Sub CONNEXION()
   Static r As Boolean
   If r Then Return
   Threading.Tasks.Task.Factory.StartNew(
       Sub()
           r = True
           With Label2 ' Label
               .Invoke(Sub()
                           .Text = "جار الفحص..."
                           .ForeColor = Color.DarkOrange
                       End Sub)
               Do
                   Dim ipString As String = tip.Text ' TextBox
                   Try
                       Dim ip = Nothing
                       If Net.IPAddress.TryParse(ipString.Trim, ip) Then
                           If My.Computer.Network.IsAvailable Then
                               If My.Computer.Network.Ping(ip.ToString) = False Then
                                   .Invoke(Sub()
                                               .Text = "غير متصل"
                                               .ForeColor = Color.Red
                                           End Sub)
                               Else
                                   .Invoke(Sub()
                                               .Text = " متصل"
                                               .ForeColor = Color.Green
                                           End Sub)
                               End If
                           Else
                               .Invoke(Sub()
                                           .Text = " لا توجد شبكة متصلة"
                                           .ForeColor = Color.Black
                                       End Sub)
                           End If
                       Else
                           .Invoke(Sub()
                                       .Text = "عنوان غير صحيح"
                                       .ForeColor = Color.Black
                                   End Sub)
                       End If
                   Catch ex As Exception
                       .Invoke(Sub()
                                   .Text = "عنوان غير صحيح"
                                   .ForeColor = Color.Black
                               End Sub)
                   End Try
                   Threading.Thread.Sleep(100)
               Loop
           End With
       End Sub)
End Sub


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sniperjawadino - 31-05-19

شكرا كثيرا أخي سامي على المساعدة

ممكن أين أضع الكود

وضعته في الفورم و الكلاس و الموديل لكن يعطيني  خطأ

مثال مرفق


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sami4 - 31-05-19

(31-05-19, 04:46 PM)sniperjawadino كتب : شكرا كثيرا أخي سامي على المساعدة

ممكن أين أضع الكود

وضعته في الفورم و الكلاس و الموديل لكن يعطيني  خطأ

مثال مرفق

حسب المثال المرفق احذف الموديل

ثم ضع الكود في كلاس الفورم
وغير Label2 باسم الليبل اللي عندك Label_CONNEXION مثل
With Label_CONNEXION ' Label

وغير tip.text بال ip الذي تريده مثل
Dim ipString As String = "192.168.13.249" ' TextBox


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sami4 - 31-05-19

(31-05-19, 04:55 PM)sami4 كتب :
(31-05-19, 04:46 PM)sniperjawadino كتب : شكرا كثيرا أخي سامي على المساعدة

ممكن أين أضع الكود

وضعته في الفورم و الكلاس و الموديل لكن يعطيني  خطأ

مثال مرفق

حسب المثال المرفق احذف الموديل

ثم ضع الكود في كلاس الفورم
وغير Label2 باسم الليبل اللي عندك Label_CONNEXION مثل
With Label_CONNEXION ' Label

وغير tip.text بال ip الذي تريده مثل
Dim ipString As String = "192.168.13.249" ' TextBox


بالتوفيق


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sniperjawadino - 03-06-19

أخي سامي حقا مبدع
شكرا لك كثيرا

في الأول وضعت دالة CONNEXION() في تايمر ليشتغل كل دقيقة
لكن بعد قراءة الكود جيدا وجدتك استعملت   Do   Loop   و بالتالي وجدت أنه لا داعي للتايمر لأن الكود سيشتغل دون توقف
و هذا ما كنت أبحث عنه

سؤال أخي
هل استعمالي لهذه الدالة ليوم كامل لن يقع أي تقل في بروسيسور الحاسوب ؟
         
 ----------------------
      
فهذا الكود thread  من بين الأشياء التي لم أجد لها شرح استوعبه و اطبقه و ينجح معي
لكن الكود الذي منحتني اشتغل معي
رغم صعوبة كتابته.... لكن سأحاول أن أجتهد فيه لكي أفهمه و أطبقه في أشياء أخرى 

من بين المشاكل التي واجهتني في thread هي خروج رسالة خطأ في بعض الأحيان دون معرفة السبب
و أصعب شيئ بالنسبة لي في البرمجة هو مشكل "خروج رسالة خطأ في بعض الأحيان" لأن الخطأ ليس منطقي و بالتالي  لا أستطيع معالجة الخطأ عندما أشغل الكود

شكرالك و جزاك الله على علمك 


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - سعود - 03-06-19

إقتباس :فهذا الكود thread  من بين الأشياء التي لم أجد لها شرح استوعبه و اطبقه و ينجح معي
اخي الكريم ... يمكنك استخدام Backgroundworker  فهي تسهل عليك فهم الثريد.


RE: كود لمعرفة الحاسوب متصل بالشبكة أم لا - sniperjawadino - 04-06-19

نعم أخي سعود
وجدت شروحات الأعضاء في المنتدى جزاكم الله كل خير
على موضوع Backgroundworker  

لكن لم أفلح في تطبيقها على ما أريد

فمثلا أين أضع هذا الكود البسيط في   حتى لا يتشنج البرنامج
تتبعت عدة شروحات لكن لم أصل لهذه النقدة البسيطة
"تشغيل كود أو تشغيل فورم يعمل لوحده دون تشنج البرنامج"

كود الأخ سامي اشتغل معاي جزاه الله على وقته

فقط من باب الاستفادة مع Backgroundworker  

كود :
If My.Computer.FileSystem.FileExists(Trim("\\192.168.13.249\test")) = True Then
          Label_CONNEXION.ForeColor = Color.Lime
      Else
          Label_CONNEXION.ForeColor = Color.Red
      End If