Visual Basic (далее VB) — одиннадцать мощных языков программирования. Особенно после версии 4.0 поддерживается технология OLE Automation, которая повышает удобство программирования. Некоторое время назад я пытался написать базу данных с поддержкой Интернета. Но так как нет подключения к интернету, проверить не могу. Итак, я подумал об OLEAutomation, которую можно использовать для тестирования сетевых функций на одной машине. После модификации вы также сможете использовать его для подключения через модем. Далее я расскажу, как использовать Visual Basic для написания небольшой сетевой системы.
----Во-первых, создайте сеть поддержки OLEAutomation.
----Запустите ВБ. Создайте список List1 в форме Form1, постройте над ним Frame1 и установите для его свойства Caption пустое значение. Создайте Label1 посередине и аналогичным образом установите для его заголовка пустое значение. Наконец, создайте Label2 с Caption UserList в List1. Наконец, установите таймер Timer1, установите для его интервала значение 3000 и установите для параметра Enabled значение False. На этом этапе формальная часть NetWorkConnection завершена.
----Затем выберите «Параметры» в меню «Инструменты» VB и заполните различное содержимое по мере необходимости.
----Далее выберите «Модуль» в меню «Вставка», чтобы создать новый модуль Module1. Введите следующий код в поле (Общие).
(тип данных UserInfo)
ТипИнформация пользователя
Имя пользователяAsString
ПсевдонимАсЦелое число
Конечный тип
(максимальное количество пользователей)
PublicConstMaxUser=10
(определить сообщение)
PublicConstMsg_User_LogOn=1
PublicConstMsg_User_LogOff=2
(Установить тип данных)
PublicUsers(MaxUser)AsUserInfo
PublicInbox(MaxUser)AsString
PublicUserSystemInboxAsInteger
PublicOnline(MaxUser)AsBoolean
Подглавная()
Форма1.Показать
EndSub
----Тип данных UserInfo записывает имя и псевдоним вошедшего в систему пользователя. Используйте псевдонимы только для отображения и общения. Имя пользователя используется только для определения того, действителен ли пользователь. По соображениям безопасности пользователи не могут получить доступ к вышеуказанным данным по своему желанию, и доступ к ним необходимо осуществлять с помощью следующих подпрограмм.
----Выберите ClassModule в меню «Вставка», чтобы создать новый класс Class1. Переименуйте его в Common и установите его свойства.
----Введите следующий код.
----(Обеспечивает функцию получения значения идентификатора пользователя. Пользователи могут использовать псевдоним для возврата значения идентификатора с помощью этой функции)
PublicFunctionGetUserID(AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Alias=AliasThenGetUserID=I
СледующийI
Конечнаяфункция
----(Предоставляет функцию получения системной информации. Пользователи могут использовать ее, чтобы узнать, вносил ли пользователь какие-либо изменения)
PublicFunctionGetSystemMessage()AsInteger
GetSystemMessage=UserSystemInbox
Конечнаяфункция
----(Предоставляет функцию получения информации о пользователях. Используйте ее для получения псевдонимов всех онлайн-пользователей, разделенных знаком "|".)
PublicFunctionGetUserInfo()AsString
ForI=1ToMaxUser
ЕслиПользователи(I).ИмяПользователя<>""Тогда
temp=temp Users(I).Псевдоним "|"
КонецЕсли
СледующийI
GetUserInfo=temp
Конечнаяфункция
----(Обеспечивает функцию получения личной информации пользователей. Используется для приема других пользователей
информация, отправленная пользователем. )
PublicFunctionGetUserMessage(IDasInteger)AsString
IfID<=0OrID>MaxUserThen
ВыходФункция
КонецЕсли
GetUserMessage=Входящие(ID)
Конечнаяфункция
----(Обеспечивает функцию выхода из системы. Используется для выхода из сети.)
PublicFunctionLogOff(IDasInteger)AsBoolean
IfID<=0OrID>MaxUserThen
Выход из системы = Ложь
ВыходФункция
КонецЕсли
ЕслиПользователи(ID).ИмяПользователя<>""Тогда
Пользователи(ID).Имя пользователя=""
Выход из системы=Истина
Еще
Выход из системы = Ложь
КонецЕсли
UserSystemInbox=Msg_User_LogOff
`--------------UpdateForm1------------
ForI=0ToForm1.List1.ListCount-1
IfForm1.List1.List(I)=Пользователи(ID).AliasThen
`Найти псевдонимы пользователей в списке List1 и удалить
Форма1.Список1.RemoveItemI
ВыходДля
КонецЕсли
СледующийI
IfForm1.List1.ListCount=0Тогда, если ни один пользователь не вошел в систему
Form1.Label1.Caption="Отключено"
Form1.timer1.Enabled=False
КонецЕсли
Конечнаяфункция
----(Обеспечивает функцию входа в Интернет для доступа в Интернет)
PublicFunctionLogOn(UsernameAsString,
AliasAsString)AsInteger
ForI=1ToMaxUser
ЕслиПользователи(I).ИмяПользователя=""Тогда
Пользователи(I).Имя пользователя=Имя пользователя
Пользователи(I).Alias=Псевдоним
Вход в систему=I
UserSystemInbox=Msg_User_LogOn`Отправить информацию о входе пользователя
`--------------UpdateForm1------------
Form1.List1.AddItemAlias`Есть пользователи онлайн
Form1.Label1.Caption="Подключено"
Форма1.таймер1.Включено=Истина
ВыходФункция
КонецЕсли
СледующийI
Вход в систему=0
Конечнаяфункция
----(Предоставляет функцию обновления флажка онлайн-статуса пользователя. Это позволяет системе определить, находитесь ли вы в сети. Если эта функция не будет вызвана в течение 6 секунд, система автоматически удалит вас.)
PublicSubRefresh (IDasInteger)
IfID<=0OrID>MaxUserThenExitSub
Онлайн(ID)=Истина
EndSub
----(Обеспечивает функцию отправки личной информации пользователей. Используется для передачи информации другим пользователям.)
PublicFunctionSendUserMessage(MessageAs
Строка,ToIDAsInteger)AsBoolean
IfToID<=0OrToID>MaxUserThen
SendUserMessage=False
ВыходФункция
КонецЕсли
Входящие(ToID)=Сообщение
SendUserMessage=Истина
Конечнаяфункция
----Введите оставшийся код в поле «Код формы1».
(Инициализировать форму 1)
PRivateSubForm_Load()
Label1.Caption="Отключено"
Form1.Caption="NetWorkConnectedServer"
Форма1.Показать
ForI=1ToMaxUser
Пользователи(I).Имя пользователя=""
СледующийI
EndSub
----(Проверьте, регулярно ли пользователь находится в сети, оценивая значение Online)
PrivateSubtimer1_Timer()
ForI=1ToMaxUser
ЕслиПользователи(I).ИмяПользователя<>""Тогда
ЕслиОнлайн(I)=ЛожьТогда
Форс=0ToList1.ListCount-1
IfList1.List(s)=Пользователи(I).AliasThen
List1.RemoveItems
Пользователи(I).Имя пользователя=""
UserSystemInbox=Msg_User_LogOff
`Отправить сообщение о выходе пользователя из системы
КонецЕсли
Далее
КонецЕсли
Онлайн(I)=Ложь
КонецЕсли
СледующийI
ЕслиСписок1.ListCount=0Тогда
`Если нет пользователя
Label1.Caption="Отключено"
timer1.Enabled=False
КонецЕсли
EndSub
----Запустите эту программу. Запустите другой VB и начните писать пользовательскую часть. Расположите эти элементы управления, как показано ниже, в форме по умолчанию.
----Введите следующий код
PublicIDASInteger
Пабликконнектедасобжект
PrivateSubCommand1_Click()`Войти
Имя_димусераAsString
ДималиасАсСтрока
SetConnected=СоздатьОбъект
(«NetWorkConnection.Common») Запустить NetWorkConnection.
имя пользователя = Text1.Text
псевдоним = Текст2.Текст
ID=Connected.logon(username,alias)`Войдите в систему и верните значение идентификатора
Таймер1.Включено=Истина
Command4_Click
EndSub
PrivateSubCommand2_Click()`Выход
x=Connected.logoff(ID)
Таймер1.Включено=Ложь
Setx=Nothing`освободить объект
EndSub
PrivateSubCommand3_Click()`Отправить информацию о пользователе
Димтемпидасцелое число
DimTempStringAsString
DimxAsString
DimyAsBoolean
x=Combo1.Текст
TempID=Connected.getuserid(x)`Получить значение идентификатора указанного пользователя
TempString=Text3.Текст
y = Connected.sendusermessage (TempString, TempID)
EndSub
PrivateSubCommand4_Click()
ForI=0ToCombo1.ListCount1`Очистить Combo1
Combo1.RemoveItem0
СледующийI
x=Connected.GetUserInfo`Получить информацию о пользователе
cd$=x
последний = 1
ForI=1ToLen(cd$)
IfMid$(cd$,I,1)="|"Тогда
Namef$=Mid$(cd$,lastst,I-lastst)
Combo1.AddItemNamef$` отсоединить псевдоним пользователя и добавить в Combo1
последний = я 1
КонецЕсли
СледующийI
EndSub
PrivateSubForm_Load()
Таймер1.Включено=Ложь
Таймер1.Интервал=300
EndSub
PrivateSubTimer1_Timer()
Connected.Refresh(ID)`Обновить логотип пользователя
x=Connected.GetSystemMessage()`Получить системную информацию
y=Connected.GetUserMessage(ID)`Получить информацию о пользователе
Ify<>""Andy<>Label6.CaptionThenLabel6.Caption=y
Ifx<>Val(Label4.Caption)Then`Обновить Combo1
Label4.Caption=x
Command4_Click
КонецЕсли
EndSub
----Начни бежать. Введите свое имя пользователя и псевдоним, нажмите «Вход» и проверьте предыдущий пример VB, чтобы увидеть, включено ли ваше имя. Если да, то это доказывает, что ваш «хаб» успешен. В настоящее время, независимо от причины отключения вошедших в систему пользователей без использования выхода из системы, система автоматически удалит этих пользователей через 6 секунд. Убедитесь, что это не затронуло других пользователей.
----Эта программа была модифицирована для поддержки функций модема. Пользовательская часть программы может остаться нетронутой. При компиляции выберите RemoteSupportFile в разделе «Параметры» и используйте прилагаемую программу установки, чтобы установить ее на сетевой сервер, чтобы по-настоящему добиться «сети». ->