Visual Basic (im Folgenden als VB bezeichnet) ist eine elf leistungsstarke Programmiersprache. Insbesondere ab 4.0 wird die OLE-Automatisierungstechnologie unterstützt, was die Programmierung komfortabler macht. Vor einiger Zeit habe ich versucht, eine webfähige Datenbank zu schreiben. Da aber keine Internetverbindung besteht, kann ich es nicht testen. Also dachte ich an OLEAutomation, mit dem sich Netzwerkfunktionen auf einem Computer testen lassen. Nach der Änderung können Sie es auch für die Verbindung über ein Modem verwenden. Als nächstes werde ich vorstellen, wie man mit Visual Basic ein kleines Netzwerksystem schreibt.
----Erstellen Sie zunächst ein Support-Netzwerk OLEAutomation
----Starten Sie VB. Erstellen Sie ein Listenfeld List1 im Formular Form1, erstellen Sie darüber einen Frame1 und setzen Sie dessen Caption-Eigenschaft auf leer. Erstellen Sie in der Mitte ein Label1 und setzen Sie dessen Caption auf ähnliche Weise auf leer. Erstellen Sie abschließend ein Label2 mit der Beschriftung UserList auf List1. Installieren Sie abschließend einen Timer Timer1, setzen Sie dessen Intervall auf 3000 und setzen Sie „Aktiviert“ auf „Falsch“. An diesem Punkt ist der Formularteil von NetWorkConnection abgeschlossen.
----Wählen Sie dann „Optionen“ im Menü „Extras“ von VB und geben Sie die verschiedenen Inhalte nach Bedarf ein.
----Als nächstes wählen Sie „Modul“ im Menü „Einfügen“ aus, um ein neues Modul „Modul1“ zu erstellen. Geben Sie unter (Allgemein) den folgenden Code ein.
(UserInfo-Datentyp)
Geben Sie UserInfo ein
BenutzernameAsString
AliasAsInteger
EndType
(maximale Anzahl Benutzer)
PublicConstMaxUser=10
(Nachricht definieren)
PublicConstMsg_User_LogOn=1
PublicConstMsg_User_LogOff=2
(Datentyp festlegen)
PublicUsers(MaxUser)AsUserInfo
PublicInbox(MaxUser)AsString
PublicUserSystemInboxAsInteger
PublicOnline(MaxUser)AsBoolean
Submain()
Form1.Show
EndSub
----Der Datentyp „UserInfo“ zeichnet den Benutzernamen und den Alias des angemeldeten Benutzers auf. Verwenden Sie Aliase nur zur Anzeige und Kommunikation. Der Benutzername wird nur verwendet, um festzustellen, ob der Benutzer gültig ist. Aus Sicherheitsgründen können Benutzer nicht nach Belieben auf die oben genannten Daten zugreifen und müssen über die folgenden Unterprogramme darauf zugreifen.
----Wählen Sie „ClassModule“ im Menü „Einfügen“, um eine neue Klasse „Class1“ zu erstellen. Benennen Sie es in „Common“ um und legen Sie seine Eigenschaften fest.
----Füllen Sie den folgenden Code aus.
----(Bietet die Funktion zum Abrufen des Benutzer-ID-Werts. Benutzer können über diese Funktion einen Alias verwenden, um den ID-Wert zurückzugeben.)
PublicFunctionGetUserID(AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Alias=AliasThenGetUserID=I
WeiterIch
EndFunction
----(Bietet die Funktion zum Abrufen von Systeminformationen. Benutzer können damit feststellen, ob der Benutzer Änderungen vorgenommen hat.)
PublicFunctionGetSystemMessage()AsInteger
GetSystemMessage=UserSystemInbox
EndFunction
----(Bietet die Funktion zum Abrufen von Benutzerinformationen. Verwenden Sie diese Funktion, um die Aliase aller Online-Benutzer abzurufen, getrennt durch „|“.)
PublicFunctionGetUserInfo()AsString
ForI=1ToMaxUser
IfUsers(I).Username<>""Then
temp=temp Users(I).Alias "|"
EndIf
WeiterIch
GetUserInfo=temp
EndFunction
----(Bietet die Funktion zum Abrufen privater Benutzerinformationen. Wird zum Akzeptieren anderer Benutzer verwendet
Vom Benutzer gesendete Informationen. )
PublicFunctionGetUserMessage(IDAsInteger)AsString
IfID<=0OrID>MaxUserThen
ExitFunction
EndIf
GetUserMessage=Posteingang(ID)
EndFunction
----(Bietet eine Abmeldefunktion. Wird zum Abmelden vom Netzwerk verwendet.)
PublicFunctionLogOff(IDAsInteger)AsBoolean
IfID<=0OrID>MaxUserThen
LogOff=False
ExitFunction
EndIf
IfUsers(ID).Username<>""Then
Benutzer(ID).Benutzername=""
LogOff=True
Anders
LogOff=False
EndIf
UserSystemInbox=Msg_User_LogOff
`--------------UpdateForm1------------
ForI=0ToForm1.List1.ListCount-1
IfForm1.List1.List(I)=Users(ID).AliasThen
„Suchen Sie Benutzeraliase in Liste1 und löschen Sie sie.“
Form1.List1.RemoveItemI
ExitFor
EndIf
WeiterIch
IfForm1.List1.ListCount=0Dann, wenn kein Benutzer angemeldet ist
Form1.Label1.Caption="DisConnected"
Form1.timer1.Enabled=Falsch
EndIf
EndFunction
----(Bietet Anmeldefunktion für den Zugriff auf das Internet)
PublicFunctionLogOn(UsernameAsString,
AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Username=""Then
Benutzer(I).Benutzername=Benutzername
Benutzer(I).Alias=Alias
Anmelden=I
UserSystemInbox=Msg_User_LogOn`Senden Sie „Benutzer-Login“-Informationen
`--------------UpdateForm1------------
Form1.List1.AddItemAlias`Es sind Benutzer online
Form1.Label1.Caption="Verbunden"
Form1.timer1.Enabled=True
ExitFunction
EndIf
WeiterIch
Anmelden=0
EndFunction
----(Bietet die Funktion zum Aktualisieren des Online-Status-Flags des Benutzers. Dadurch kann das System feststellen, ob Sie online sind. Wenn diese Funktion nicht innerhalb von 6 Sekunden aufgerufen wird, löscht das System Sie automatisch.)
PublicSubRefresh(IDAsInteger)
IfID<=0OrID>MaxUserThenExitSub
Online(ID)=True
EndSub
----(Bietet die Funktion zum Senden privater Benutzerinformationen. Wird zum Übertragen von Informationen an andere Benutzer verwendet.)
PublicFunctionSendUserMessage(MessageAs
String,ToIDAsInteger)AsBoolean
IfToID<=0OrToID>MaxUserThen
SendUserMessage=False
ExitFunction
EndIf
Posteingang(ToID)=Nachricht
SendUserMessage=True
EndFunction
----Geben Sie den restlichen Code in den Code von Form1 ein.
(Form1 initialisieren)
PRivateSubForm_Load()
Label1.Caption="DisConnected"
Form1.Caption="NetWorkConnectedServer"
Form1.Show
ForI=1ToMaxUser
Benutzer(I).Benutzername=""
WeiterIch
EndSub
----(Überprüfen Sie, ob der Benutzer regelmäßig online ist, indem Sie den Wert von Online beurteilen.)
PrivateSubtimer1_Timer()
ForI=1ToMaxUser
IfUsers(I).Username<>""Then
IfOnline(I)=FalseThen
Fors=0ToList1.ListCount-1
IfList1.List(s)=Users(I).AliasThen
List1.RemoveItems
Benutzer(I).Benutzername=""
UserSystemInbox=Msg_User_LogOff
„Nachricht „Benutzerabmeldung“ senden.“
EndIf
Nächstes
EndIf
Online(I)=Falsch
EndIf
WeiterIch
IfList1.ListCount=0Then
„Wenn kein Benutzer vorhanden ist
Label1.Caption="DisConnected"
timer1.Enabled=False
EndIf
EndSub
----Führen Sie dieses Programm aus. Starten Sie ein weiteres VB und beginnen Sie mit dem Schreiben des Benutzerteils. Ordnen Sie diese Steuerelemente wie unten gezeigt im Standardformular an.
----Füllen Sie den folgenden Code aus
PublicIDAsInteger
PublicConnectedAsObject
PrivateSubCommand1_Click()`Anmelden
DimusernameAsString
DimaliasAsString
SetConnected=CreateObject
("NetWorkConnection.Common")NetWorkConnection starten
Benutzername=Text1.Text
alias=Text2.Text
ID=Connected.logon(username,alias)`Melden Sie sich an und geben Sie den ID-Wert zurück
Timer1.Enabled=True
Command4_Click
EndSub
PrivateSubCommand2_Click()`Abmelden
x=Connected.logoff(ID)
Timer1.Enabled=False
Setx=Nothing`gibt das Objekt frei
EndSub
PrivateSubCommand3_Click()`Benutzerinformationen senden
DimTempIDAsInteger
DimTempStringAsString
DimxAsString
DimyAsBoolean
x=Combo1.Text
TempID=Connected.getuserid(x)`Rufen Sie den ID-Wert des angegebenen Benutzers ab
TempString=Text3.Text
y=Connected.sendusermessage(TempString,TempID)
EndSub
PrivateSubCommand4_Click()
ForI=0ToCombo1.ListCount1`Löschen Sie Combo1
Combo1.RemoveItem0
WeiterIch
x=Connected.GetUserInfo`Benutzerinformationen empfangen
cd$=x
lastst=1
ForI=1ToLen(cd$)
IfMid$(cd$,I,1)="|"Dann
Namef$=Mid$(cd$,lastst,I-lastst)
Combo1.AddItemNamef$` Benutzeralias trennen und zu Combo1 hinzufügen
lastst=I 1
EndIf
WeiterIch
EndSub
PrivateSubForm_Load()
Timer1.Enabled=False
Timer1.Intervall=300
EndSub
PrivateSubTimer1_Timer()
Connected.Refresh(ID)`Benutzerlogo aktualisieren
x=Connected.GetSystemMessage()`Empfangen Sie Systeminformationen
y=Connected.GetUserMessage(ID)`Empfangen Sie Benutzerinformationen
Ify<>""Andy<>Label6.CaptionThenLabel6.Caption=y
Ifx<>Val(Label4.Caption)Then`Refresh Combo1
Label4.Caption=x
Command4_Click
EndIf
EndSub
----Starten Sie den Lauf. Geben Sie Ihren Benutzernamen und Alias ein, klicken Sie auf „Anmelden“ und prüfen Sie im vorherigen VB-Beispiel, ob Ihr Name enthalten ist. Wenn ja, beweist das, dass Ihr „Hub“ erfolgreich ist. Zu diesem Zeitpunkt löscht das System diese Benutzer automatisch nach 6 Sekunden, unabhängig davon, aus welchem Grund angemeldete Benutzer die Verbindung trennen, ohne LogOff zu verwenden. Stellen Sie sicher, dass andere Benutzer nicht betroffen sind.
----Dieses Programm wurde geändert, um Modemfunktionen zu unterstützen. Der Benutzerteil des Programms kann erhalten bleiben. Wählen Sie beim Kompilieren RemoteSupportFile in den Optionen aus und verwenden Sie das mitgelieferte Installationsprogramm, um es auf dem Netzwerkserver zu installieren, um eine echte „Vernetzung“ zu erreichen. ->