Visual Basic (doravante denominado VB) é uma onze poderosa linguagem de programação. Principalmente a partir da versão 4.0, há suporte para a tecnologia OLE Automation, que traz maior comodidade à programação. Há algum tempo, tentei escrever um banco de dados habilitado para web. Mas como não há conexão com a Internet, não posso testar. Então pensei no OLEAutomation, que pode ser usado para testar funções de rede em uma máquina. Após a modificação, você também pode usá-lo para conectar-se através do modem. A seguir, apresentarei como usar o Visual Basic para escrever um pequeno sistema de rede.
----Primeiro, estabeleça uma rede de suporte OLEAutomation
----Inicie o VB. Crie uma caixa de listagem List1 no formato Form1, construa um Frame1 acima dela e defina sua propriedade Caption como vazia. Crie um Label1 no meio e defina sua legenda como vazia. Por fim, crie um Label2 com a legenda UserList na List1. Por fim, instale um timer Timer1, defina seu intervalo como 3000 e defina Enabled como False. Neste ponto, a parte do formulário do NetWorkConnection está concluída.
----Em seguida, selecione Opções no menu Ferramentas do VB e preencha os vários conteúdos conforme necessário.
---- Em seguida, selecione Módulo no menu Inserir para criar um novo módulo Módulo1. Digite o seguinte código em (Geral).
(tipo de dados UserInfo)
TipoUserInfo
Nome de usuárioAsString
AliasAsInteger
Tipo final
(número máximo de usuários)
PublicConstMaxUser=10
(definir mensagem)
PublicConstMsg_User_LogOn=1
PublicConstMsg_User_LogOff=2
(Definir tipo de dados)
Usuários Públicos(MaxUser)AsUserInfo
PublicInbox(MaxUser)AsString
PublicUserSystemInboxAsInteger
PublicOnline(MaxUser)AsBoolean
Subprincipal()
Formulário1.Mostrar
Fim Sub
---- O tipo de dados UserInfo registra o nome de usuário e o alias do usuário conectado. Use apenas aliases para exibição e comunicação. O nome de usuário é usado apenas para determinar se o usuário é válido. Por razões de segurança, os dados acima não podem ser acessados pelos usuários à vontade e devem ser acessados através das seguintes sub-rotinas.
----Selecione ClassModule no menu Inserir para criar uma nova classe Class1. Renomeie-o para Common e defina suas propriedades.
----Preencha o código a seguir.
----(Fornece a função de obter o valor do ID do usuário. Os usuários podem usar o alias para retornar o valor do ID por meio desta função)
PublicFunctionGetUserID(AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Alias=AliasThenGetUserID=I
PróximoEu
Função Final
----(Fornece a função de obter informações do sistema. Os usuários podem usá-la para saber se o usuário fez alguma alteração)
PublicFunctionGetSystemMessage()AsInteger
GetSystemMessage=UserSystemInbox
Função Final
----(Oferece a função de obtenção de informações do usuário. Utilize-a para obter os aliases de todos os usuários online, separados por "|".)
PublicFunctionGetUserInfo()AsString
ForI=1ToMaxUser
IfUsers(I).Username<>""Então
temp=temp Usuários(I).Alias "|"
FimSe
PróximoEu
GetUserInfo = temp
Função Final
----(Fornece a função de obter informações privadas do usuário. Usado para aceitar outros usuários
informações enviadas pelo usuário. )
PublicFunctionGetUserMessage(IDAsInteger)AsString
IfID<=0OrID>MaxUserThen
Função de saída
FimSe
GetUserMessage=Caixa de entrada(ID)
Função Final
----(Fornece função de logout. Usado para sair da rede.)
PublicFunctionLogOff(IDAsInteger)AsBoolean
IfID<=0OrID>MaxUserThen
Logoff=Falso
Função de saída
FimSe
IfUsers(ID).Nome de usuário<>""Então
Usuários(ID).Nome de usuário=""
Logoff = Verdadeiro
Outro
Logoff=Falso
FimSe
UserSystemInbox=Msg_User_LogOff
`--------------AtualizarForm1-----------
ForI=0ToForm1.List1.ListCount-1
IfForm1.List1.List(I)=Usuários(ID).AliasThen
`Encontre aliases de usuário na Lista1 e exclua
Form1.List1.RemoveItemI
Sair para
FimSe
PróximoEu
IfForm1.List1.ListCount=0Then`se nenhum usuário estiver logado
Form1.Label1.Caption = "Desconectado"
Form1.timer1.Enabled=Falso
FimSe
Função Final
----(Fornece função de login para acessar a Internet)
PublicFunctionLogOn(UsernameAsString,
AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Username=""Então
Usuários(I).Username=Nome de usuário
Usuários(I).Alias=Alias
Logon=I
UserSystemInbox=Msg_User_LogOn`Enviar informações de "login do usuário"
`--------------AtualizarForm1-----------
Form1.List1.AddItemAlias`Existem usuários online
Form1.Label1.Caption = "Conectado"
Form1.timer1.Enabled = Verdadeiro
Função de saída
FimSe
PróximoEu
Logon=0
Função Final
----(Fornece a função de atualizar o sinalizador de status online do usuário. Isso permite que o sistema determine se você está online. Se esta função não for chamada em 6 segundos, o sistema irá excluí-lo automaticamente.)
PublicSubRefresh(IDAsInteger)
IfID<=0OrID>MaxUserThenExitSub
On-line(ID)=Verdadeiro
Fim Sub
----(Fornece a função de enviar informações privadas dos usuários. Usado para transferir informações para outros usuários.)
PublicFunctionSendUserMessage(MessageAs
String,ToIDAsInteger)AsBoolean
IfToID<=0OrToID>MaxUserThen
SendUserMessage=Falso
Função de saída
FimSe
Caixa de entrada(ToID)=Mensagem
SendUserMessage = Verdadeiro
Função Final
----Insira o código restante no Código do Form1.
(Inicializar Formulário1)
PRivateSubForm_Load()
Label1.Caption = "Desconectado"
Form1.Caption = "NetWorkConnectedServer"
Formulário1.Mostrar
ForI=1ToMaxUser
Usuários(I).Nome de usuário=""
PróximoEu
Fim Sub
----(Verifique se o usuário está online regularmente julgando o valor de Online)
PrivateSubtimer1_Timer()
ForI=1ToMaxUser
IfUsers(I).Username<>""Então
IfOnline(I)=FalsoEntão
Fors=0ToList1.ListCount-1
IfList1.List(s)=Usuários(I).AliasThen
Lista1.RemoveItems
Usuários(I).Nome de usuário=""
UserSystemInbox=Msg_User_LogOff
`Enviar mensagem de "logout do usuário"
FimSe
Próximos
FimSe
On-line(I)=Falso
FimSe
PróximoEu
IfList1.ListCount=0Então
`Se não houver usuário
Label1.Caption="Desconectado"
timer1.Enabled=Falso
FimSe
Fim Sub
---- Execute este programa. Inicie outro VB e comece a escrever a parte do usuário. Organize esses controles conforme mostrado abaixo no formulário padrão.
----Preencha o seguinte código
PublicIDAsInteger
PublicConnectedAsObject
PrivateSubCommand1_Click()`Login
DimusernameAsString
DimaliasAsString
SetConnected=CriarObjeto
("NetWorkConnection.Common")Iniciar NetWorkConnection
nome de usuário = Texto1.Texto
alias=Text2.Texto
ID=Connected.logon(username,alias)`Faça login e retorne o valor do ID
Timer1.Enabled = Verdadeiro
Comando4_Clique
Fim Sub
PrivateSubCommand2_Click()`Sair
x=Conectado.logoff(ID)
Timer1.Enabled=Falso
Setx=Nothing`libere o objeto
Fim Sub
PrivateSubCommand3_Click()`Enviar informações do usuário
DimTempIDAsInteger
DimTempStringAsString
DimxAsString
DimyAsBoolean
x=Combo1.Texto
TempID=Connected.getuserid(x)`Obtém o valor do ID do usuário especificado
TempString=Text3.Texto
y=Connected.sendusermessage(TempString,TempID)
Fim Sub
PrivateSubCommand4_Click()
ForI=0ToCombo1.ListCount1`Limpar Combo1
Combo1.RemoveItem0
PróximoEu
x=Connected.GetUserInfo`Receber informações do usuário
cd$=x
último=1
ForI=1ToLen(cd$)
IfMid$(cd$,I,1)="|"Então
Nomef$=Mid$(cd$,último,I-último)
Combo1.AddItemNamef$` desanexa o alias do usuário e adiciona ao Combo1
último=I 1
FimSe
PróximoEu
Fim Sub
PrivateSubForm_Load()
Timer1.Enabled=Falso
Temporizador1.Interval=300
Fim Sub
PrivateSubTimer1_Timer()
Connected.Refresh(ID)`Atualizar logotipo do usuário
x=Connected.GetSystemMessage()`Receber informações do sistema
y=Connected.GetUserMessage(ID)`Receber informações do usuário
Ify<>""Andy<>Label6.CaptionThenLabel6.Caption=y
Ifx<>Val(Label4.Caption)Then`Atualizar Combo1
Label4.Caption=x
Comando4_Clique
FimSe
Fim Sub
---- Comece a correr. Digite seu nome de usuário e alias, clique em LogOn e verifique o exemplo VB anterior para ver se seu nome está incluído. Se sim, isso prova que o seu “hub” foi bem-sucedido. Neste momento, não importa o motivo para os usuários logados se desconectarem sem usar o LogOff, o sistema excluirá automaticamente esses usuários após 6 segundos. Certifique-se de que outros usuários não sejam afetados.
----Este programa foi modificado para suportar funções de modem. A parte do usuário do programa pode permanecer intacta. Ao compilar, selecione RemoteSupportFile em Opções e use o programa de instalação incluído para instalá-lo no servidor de rede para realmente obter "rede". ->