اذهب الي المحتوي
أوفيسنا

كود التحقق من الاتصال بالانترنت


الردود الموصى بها

هذا هو كود التحقق من الاتصال بالانترنت للخ الكريم عبد الله فتحي جزاه الله كل خير :fff:

بسم الله الرحمن الرحيم

تحياتي لك أخي أمير على هذا المجهود الرائع ..

هذا الكود للتأكد من حالة الاتصال بالإنترنت، وأنا متأكد أنه توجد أكواد أصغر من ذلك بمراحل، ولكن هذا هو المتاح حالياً:

1. بداية قم بإنشاء موديول جديد، وضع فيه الكود التالي كما هو:

Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long

Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long

Public Const RAS95_MaxEntryName = 256

Public Const RAS95_MaxDeviceType = 16

Public Const RAS95_MaxDeviceName = 32


Public Type RASCONN95

   dwSize As Long

   hRasCon As Long

   szEntryName(RAS95_MaxEntryName) As Byte

   szDeviceType(RAS95_MaxDeviceType) As Byte

   szDeviceName(RAS95_MaxDeviceName) As Byte

End Type


Public Type RASCONNSTATUS95

   dwSize As Long

   RasConnState As Long

   dwError As Long

   szDeviceType(RAS95_MaxDeviceType) As Byte

   szDeviceName(RAS95_MaxDeviceName) As Byte

End Type
ثم بعد ذلك اذهب إلى كود الفورم وقم بوضع الكود التالي في أعلى الفورم وفي قسم التصريحات العامة General_Declartion
Public Function IsConnected() As Boolean


Dim TRasCon(255) As RASCONN95

Dim lg As Long

Dim lpcon As Long

Dim RetVal As Long

Dim Tstatus As RASCONNSTATUS95


TRasCon(0).dwSize = 412

lg = 256 * TRasCon(0).dwSize


RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)


If RetVal <> 0 Then

   MsgBox "ERROR"

   Exit Function

End If


Tstatus.dwSize = 160

RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)


If Tstatus.RasConnState = &H2000 Then

   IsConnected = True

   Else

   IsConnected = False

End If


End Function
بعد أن انتهينا مما سبق الآن نصل إلى النقطة الأخيرة، لكي نتأكد من حالة الاتصال ضع الكود التالي في حدث الضغط على الزر، ويقوم الكود التالي بإظهار رسالة تبين حالة الاتصال، ويمكنك طبعاً تغيير الأمر بما تريده، سواء فتح ملف أكسل أو غيره ...
If IsConnected() = True Then

   MsgBox ("الجهاز متصل بالانترنت")

   Else

   MsgBox ("الجهاز غير متصل بالانترنت")

End If

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

يوجد كود آخر أقل من الكود السابق ولكنه سيحتاج إلى استخدام الأداة Winsock وأعتقد أنك لا تريد استخدام أدوات ...

Check.rar

تم تعديل بواسطه امير عاطف
رابط هذا التعليق
شارك

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

وله هذه

:f4:

رابط هذا التعليق
شارك

أخي أمير شكراً لك .. وأنا لم أقم بأي جهد يُذكر :hart: وكل التقدير لك وللأستاذ محمد طاهر على ما تقدمونه لنا من مجهودات عظيمة .. أرجو أن يجعلها الله في ميزان حسناتكما :fff:

رابط هذا التعليق
شارك

الإخوة الأعزاء بما أن الأمر يُهم بعضكم فإليكم طريقة أخرى سهلة جداً ولا تحتاج إلى كود طويل، ولكننا سنستخدم فيها أداة الوينسوك ..

طبعاً سنقوم بإنشاء نموذج جديد، ومن مربع الأدوات نقوم برسم أداة زر أمر، ثم بعدها ومن مربع الأدوات أيضاً نقوم باختيار عناصر تحكم إضافية، وهنا ستظهر لنا قائمة طويلة قم باختيار الأداة Microsoft Winsock Control منها، ثم قم برسمها على النموذج ..

الآن تأكد من أن اسم الأداة الجديدة هو Winsock1 ثم بعد ذلك ضع الكود التالي في حدث النقر على الزر:

If Winsock1.LocalIP = "127.0.0.1" Then

   MsgBox ("الجهاز غير متصل بالانترنت")

   Else

   MsgBox ("الجهاز متصل بالانترنت")

End If

كما ترون الكود سهل جداً ولا يحتاج إلى موديول ولا إلى غيره، فقط سنحتاج الأداة المذكورة سابقاً .. وبعدها سنجعل الأداة تتحقق من رقم الأي بي فإذا كان 127.0.0.1 فهذا يعني أننا غير متصلين بالإنترنت، وإذا كان غير ذلك فهذا يعني أننا متصلين بها .. وفي المثال المرفق تجد نموذج واحد يحتوي على ما ذكرناه .. وإليكم تحياتي.

Check2.rar

تم تعديل بواسطه عبد الله فتحي
رابط هذا التعليق
شارك

  • 16 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information