Make your own free website on Tripod.com

 

Inicio

Quienes Somos?

Homework

Contactenos

     
 

Comunicación de dos computadores: Programa Visual Basic

Option Explicit
Dim Cadena As String 'Texto entrante
Dim Msg As String 'Vble de mensajes

Private Sub Conectar_Click()
On Error Resume Next
'comprueba que el puerto este cerrado para poder abrirlo
If MSComm1.PortOpen = False Then
'determina el puerto que hemos seleccionado
If Puertos.ListIndex = 0 Then
MSComm1.CommPort = 4
Else
MSComm1.CommPort = 2
End If
'determina: 9600-Velocidad en Baudios, N-No utiliza ninguna paridad,
'8-Cantidad de bits de envio y recepcion por paquete,
'1-Determina los bits de parada
MSComm1.Settings = "9600,N,8,1"
'lee todo el buffer de entrada para que quede vacio
MSComm1.InputLen = 0
'Abre el puerto seleccionado
MSComm1.PortOpen = True
Me.Caption = "Comunicación de PC's - Conectado por el puerto " & MSComm1.CommPort

If Err.Number = 8005 Then
Msg = MsgBox("El puerto ya esta abierto!.", vbInformation + vbOKOnly, "Puerto abierto.")
End If

End If
End Sub

Private Sub Desconectar_Click()
If MSComm1.PortOpen Then
'cierra el puerto
MSComm1.PortOpen = False
Me.Caption = "Comunicación de PC's - Desconectado"
End If
End Sub

Private Sub Enviar_Click()
On Error Resume Next
'envia el texto escrito.
MSComm1.Output = TextoEnviar.Text & vbCr
'coloca el texto que enviamos en la pantalla
Texto.ForeColor = &HFF0000
Texto.Text = Texto.Text & vbCrLf & "<PC1> " & TextoEnviar.Text
TextoEnviar.SetFocus
If Err.Number = 8018 Then
Msg = MsgBox("Su mensaje se dirije a usted mismo." & vbCrLf & "Para conectarse con otro PC, de click en ""Conectar""", vbInformation + vbOKOnly, "Comunicación interna.")
End If
End Sub

Private Sub Form_Load()
Puertos.AddItem "Com1"
Puertos.AddItem "Com2"
Puertos.ListIndex = 0
'TextoEnviar.SetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
Desconectar_Click
End Sub

'El evento OnComm se genera siempre que cambia el valor de la propiedad
'CommEvent e indica que se ha producido un evento o un error en la comunicación.
Private Sub MSComm1_OnComm()
Dim i As Integer
Dim Valor As String

'recoge el valor de entrada
Valor = MSComm1.Input
'busca la posicion del caracter de salto de linea
i = InStr(Valor, Chr(13))

'si no hay ningun salto de linea, quiere decir que la informacion que recibe
'es parte de una cadena recibida con anterioridad.
If i = 0 Then
Cadena = Cadena & Valor
Else
Cadena = Cadena & Left(Valor, i - 1)
Texto.ForeColor = &HFF&
Texto.Text = Texto.Text & vbCrLf & "<PC2> " & Cadena
Texto.SelStart = Len(Texto.Text)
Cadena = ""
End If
End Sub

Private Sub TextoEnviar_GotFocus()
SendKeys "{Home}+{End}"
End Sub