Visual Basic (المشار إليها فيما يلي باسم VB) هي أحد عشر لغة برمجة قوية. خاصة بعد الإصدار 4.0، تم دعم تقنية OLE Automation، مما يوفر راحة أكبر للبرمجة. منذ بعض الوقت، حاولت كتابة قاعدة بيانات متاحة على الويب. ولكن بما أنه لا يوجد اتصال بالإنترنت، لا أستطيع اختباره. لذا، فكرت في OLEAutomation، الذي يمكن استخدامه لاختبار وظائف الشبكة على جهاز واحد. وبعد التعديل يمكنك أيضًا استخدامه للاتصال عبر المودم. بعد ذلك، سأقدم كيفية استخدام Visual Basic لكتابة نظام شبكة صغير.
----أولاً، قم بإنشاء شبكة دعم OLEAutomation
---- ابدأ VB. إنشاء مربع قائمة List1 في النموذج Form1، وإنشاء Frame1 فوقه، وتعيين خاصية التسمية التوضيحية الخاصة به إلى فارغة. قم بإنشاء Label1 في المنتصف، وقم بالمثل بتعيين التسمية التوضيحية الخاصة به على فارغة. وأخيرًا، قم بإنشاء Label2 باستخدام قائمة مستخدم التسمية التوضيحية في القائمة 1. أخيرًا، قم بتثبيت المؤقت Timer1، واضبط الفاصل الزمني الخاص به على 3000، واضبط Enabled على False. عند هذه النقطة، اكتمل جزء النموذج من NetWorkConnection.
----ثم، حدد خيارات في قائمة الأدوات في VB وقم بملء المحتويات المتنوعة كما هو مطلوب.
----بعد ذلك، حدد الوحدة النمطية في القائمة "إدراج" لإنشاء وحدة نمطية جديدة Module1. أدخل الكود التالي في (عام).
(نوع بيانات معلومات المستخدم)
معلومات المستخدم
اسم المستخدمAsString
الاسم المستعارAsInteger
نوع النهاية
(الحد الأقصى لعدد المستخدمين)
PublicConstMaxUser=10
(تحديد الرسالة)
PublicConstMsg_User_LogOn=1
PublicConstMsg_User_LogOff=2
(تعيين نوع البيانات)
PublicUsers(MaxUser)AsUserInfo
PublicInbox(MaxUser)AsString
PublicUserSystemInboxAsInteger
PublicOnline(MaxUser)AsBoolean
فرعي ()
Form1.Show
EndSub
----يسجل نوع بيانات UserInfo اسم المستخدم والاسم المستعار للمستخدم الذي قام بتسجيل الدخول. استخدم الأسماء المستعارة فقط للعرض والتواصل. يتم استخدام اسم المستخدم فقط لتحديد ما إذا كان المستخدم صالحًا أم لا. لأسباب أمنية، لا يمكن للمستخدمين الوصول إلى البيانات المذكورة أعلاه حسب الرغبة ويجب الوصول إليها من خلال الإجراءات الفرعية التالية.
----حدد ClassModule في القائمة "إدراج" لإنشاء فئة جديدة Class1. أعد تسميته إلى Common وقم بتعيين خصائصه.
----املأ الكود التالي.
----(يوفر وظيفة الحصول على قيمة معرف المستخدم. يمكن للمستخدمين استخدام الاسم المستعار لإرجاع قيمة المعرف من خلال هذه الوظيفة)
PublicFunctionGetUserID(AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Alias=AliasThenGetUserID=I
التاليأنا
وظيفة النهاية
----(يوفر وظيفة الحصول على معلومات النظام. يمكن للمستخدمين استخدامها لمعرفة ما إذا كان المستخدم قد أجرى أي تغييرات)
PublicFunctionGetSystemMessage()AsInteger
GetSystemMessage=UserSystemInbox
وظيفة النهاية
----(يوفر وظيفة الحصول على معلومات المستخدم. استخدمها للحصول على الأسماء المستعارة لجميع المستخدمين عبر الإنترنت، مفصولة بـ "|".)
PublicFunctionGetUserInfo()AsString
ForI=1ToMaxUser
IfUsers(I).اسم المستخدم<>""ثم
temp=temp Users(I).الاسم المستعار "|"
EndIf
التاليأنا
GetUserInfo=temp
وظيفة النهاية
----(يوفر وظيفة الحصول على المعلومات الخاصة للمستخدمين. يستخدم لقبول المستخدمين الآخرين
المعلومات المرسلة من قبل المستخدم. )
PublicFunctionGetUserMessage(IDasInteger)AsString
IfID<=0OrID>MaxUserThen
وظيفة الخروج
EndIf
GetUserMessage=صندوق الوارد(المعرف)
وظيفة النهاية
----(يوفر وظيفة تسجيل الخروج. يستخدم لتسجيل الخروج من الشبكة.)
PublicFunctionLogOff(IDasInteger)AsBoolean
IfID<=0OrID>MaxUserThen
تسجيل الخروج = خطأ
وظيفة الخروج
EndIf
IfUsers(ID).اسم المستخدم<>""ثم
المستخدمون (المعرف).اسم المستخدم = ""
تسجيل الخروج = صحيح
آخر
تسجيل الخروج = خطأ
EndIf
UserSystemInbox=Msg_User_LogOff
`--------------UpdateForm1------------
ForI=0ToForm1.List1.ListCount-1
IfForm1.List1.List(I)=Users(ID).AliasThen
`ابحث عن الأسماء المستعارة للمستخدم في القائمة 1 واحذفها
Form1.List1.RemoveItemI
خروج من أجل
EndIf
التاليأنا
IfForm1.List1.ListCount=0ثم`إذا لم يتم تسجيل دخول أي مستخدم
Form1.Label1.Caption = "منقطع"
Form1.timer1.Enabled=خطأ
EndIf
وظيفة النهاية
----(يوفر وظيفة تسجيل الدخول للوصول إلى الإنترنت)
PublicFunctionLogOn(اسم المستخدمAsString،
الاسم المستعار كسلسلة) AsInteger
ForI=1ToMaxUser
IfUsers(I).اسم المستخدم = ""ثم
المستخدمون (I).اسم المستخدم=اسم المستخدم
المستخدمون (I). الاسم المستعار = الاسم المستعار
تسجيل الدخول = أنا
UserSystemInbox=Msg_User_LogOn`أرسل معلومات "تسجيل دخول المستخدم".
`--------------UpdateForm1------------
Form1.List1.AddItemAlias`هناك مستخدمون متصلون بالإنترنت
Form1.Label1.Caption = "متصل"
Form1.timer1.Enabled=صحيح
وظيفة الخروج
EndIf
التاليأنا
تسجيل الدخول = 0
وظيفة النهاية
----(يوفر وظيفة تحديث علامة حالة اتصال المستخدم. وهذا يمكّن النظام من تحديد ما إذا كنت متصلاً بالإنترنت. إذا لم يتم استدعاء هذه الوظيفة خلال 6 ثوانٍ، فسيقوم النظام بحذفك تلقائيًا.)
PublicSubRefresh(IDasInteger)
IfID<=0OrID>MaxUserThenExitSub
عبر الإنترنت (المعرف) = صحيح
EndSub
----(يوفر وظيفة إرسال المعلومات الخاصة للمستخدمين. يستخدم لنقل المعلومات إلى مستخدمين آخرين.)
PublicFunctionSendUserMessage(MessageAs
سلسلة،ToIDAsInteger)AsBoolean
IfToID<=0OrToID>MaxUserThen
SendUserMessage=خطأ
وظيفة الخروج
EndIf
Inbox(ToID)=Message
SendUserMessage=صحيح
وظيفة النهاية
---- أدخل الكود المتبقي في كود Form1.
(تهيئة النموذج 1)
PRivateSubForm_Load()
Label1.Caption = "غير متصل"
Form1.Caption = "NetWorkConnectedServer"
Form1.Show
ForI=1ToMaxUser
المستخدمون (أنا).اسم المستخدم = ""
التاليأنا
EndSub
----(تحقق مما إذا كان المستخدم متصلاً بالإنترنت بانتظام من خلال الحكم على قيمة الاتصال بالإنترنت)
PrivateSubtimer1_Timer()
ForI=1ToMaxUser
IfUsers(I).اسم المستخدم<>""ثم
IfOnline(I)=FalseThen
Fors=0ToList1.ListCount-1
IfList1.List(s)=Users(I).AliasThen
القائمة 1. إزالة العناصر
المستخدمون (أنا).اسم المستخدم = ""
UserSystemInbox=Msg_User_LogOff
`أرسل رسالة "تسجيل خروج المستخدم".
EndIf
التالي
EndIf
عبر الإنترنت (أنا) = خطأ
EndIf
التاليأنا
IfList1.ListCount=0ثم
`إذا لم يكن هناك مستخدم
Label1.Caption = "غير متصل"
timer1.Enabled=False
EndIf
EndSub
---- قم بتشغيل هذا البرنامج. ابدأ تشغيل VB آخر وابدأ في كتابة جزء المستخدم. قم بترتيب عناصر التحكم هذه كما هو موضح أدناه في النموذج الافتراضي.
----املأ الكود التالي
PublicIDasInteger
PublicConnectedAsObject
PrivateSubCommand1_Click()`تسجيل الدخول
DimusernameAsString
DimaliasAsString
SetConnected=CreateObject
("NetWorkConnection.Common") ابدأ تشغيل NetWorkConnection
اسم المستخدم=Text1.Text
الاسم المستعار = Text2.Text
ID=Connected.logon(username,alias)`قم بتسجيل الدخول وإرجاع قيمة المعرف
Timer1.Enabled=صحيح
Command4_Click
EndSub
PrivateSubCommand2_Click()`تسجيل الخروج
x=Connected.logoff(ID)
Timer1.Enabled=خطأ
Setx=لا شيء حرر الكائن
EndSub
PrivateSubCommand3_Click()`أرسل معلومات المستخدم
DimTempIDasInteger
DimTempStringAsString
DimxAsString
DimyAsBoolean
x=Combo1.Text
TempID=Connected.getuserid(x)`احصل على قيمة المعرف للمستخدم المحدد
TempString=Text3.Text
y=Connected.sendusermessage(TempString,TempID)
EndSub
PrivateSubCommand4_Click()
ForI=0ToCombo1.ListCount1`مسح التحرير والسرد1
Combo1.RemoveItem0
التاليأنا
x=Connected.GetUserInfo`تلقي معلومات المستخدم
cd$=x
آخر = 1
فورأنا=1ToLen(cd$)
IfMid$(cd$,I,1)="|"ثم
Namef$=Mid$(cd$,lastst,I-lastst)
Combo1.AddItemNamef$` افصل الاسم المستعار للمستخدم وأضفه إلى Combo1
آخر = أنا 1
EndIf
التاليأنا
EndSub
PrivateSubForm_Load()
Timer1.Enabled=خطأ
Timer1.Interval=300
EndSub
PrivateSubTimer1_Timer()
Connected.Refresh(ID)`تحديث شعار المستخدم
x=Connected.GetSystemMessage()`تلقي معلومات النظام
y=Connected.GetUserMessage(ID)`تلقي معلومات المستخدم
Ify<>""أندي<>Label6.CaptionThenLabel6.Caption=y
Ifx<>Val(Label4.Caption)ثم`Refresh Combo1
Label4.Caption=x
Command4_Click
EndIf
EndSub
---- ابدأ بالجري. أدخل اسم المستخدم والاسم المستعار، وانقر فوق LogOn، وتحقق من مثال VB السابق لمعرفة ما إذا كان اسمك مدرجًا أم لا. إذا كان الأمر كذلك، فهذا يثبت أن "مركزك" ناجح. في هذا الوقت، بغض النظر عن سبب قطع اتصال المستخدمين الذين قاموا بتسجيل الدخول دون استخدام تسجيل الخروج، سيقوم النظام تلقائيًا بحذف هؤلاء المستخدمين بعد 6 ثوانٍ. تأكد من عدم تأثر المستخدمين الآخرين.
---- تم تعديل هذا البرنامج لدعم وظائف المودم. يمكن أن يظل الجزء المستخدم من البرنامج سليمًا. عند الترجمة، حدد RemoteSupportFile في الخيارات واستخدم برنامج التثبيت المضمن لتثبيته على خادم الشبكة لتحقيق "الشبكة" حقًا. ->