galera... tenta me ajudar por favor...
Estou com este erro aqui... "subscript out of range"
Mas não estou de geito nenhum conseguinto achar onde esta o erro...
Segue a linha de codigo...
Private Sub objWinSock_DataArrival(ByVal bytesTotal As Long)
Dim i As Integer
Dim oString As String
DoEvents:
Dim bs() As Byte 'Variável de Array de Bytes
ReDim bs(bytesTotal) 'Redimenciona a array com a quantidade de byte que veio
'Espera o objWinSock se conectar ... status de conectado = 7
Do While objWinsock.State <> 7
DoEvents:
Loop
'Lendo e esperando os bytes
objWinsock.GetData bs, vbByte, bytesTotal
'Loop para checar os comandos do TELNET
i = 0
oString = vbNullString 'Limpa a String
'Enquanto "i" for menor que a quantidade total dos bytes execute
While i < bytesTotal
'Está parte do código é onde ele lê e traduz os bytes
'recebido no telnet
'parte crucial onde vc fica sabendo
'o que está acontecendo no TELNET
If bs(i) = TELCMD_IAC Then ========>>>> O erro esta aqui no bs(i)
i = i + 1
Select Case bs(i)
Case TELCMD_IAC: 'Não é um comando
oString = oString + Chr(TELCMD_IAC)
Case TELCMD_SB: 'Sub Opções
i = i + 2
If bs(i - 1) = TELOPT_TTYPE Then
objWinsock.SendData Chr$(TELCMD_IAC) + Chr$(TELCMD_SB) + Chr$(TELOPT_TTYPE) + Chr$(TELQUAL_IS) + "TTY" + Chr$(TELCMD_IAC) + Chr$(TELCMD_SE)
End If
Case TELCMD_SE: 'Fim das Sub Opções
Case TELCMD_DO, TELCMD_DONT, TELCMD_WILL, TELCMD_WONT:
i = i + 1
Select Case bs(i)
Case TELOPT_BINARY, TELOPT_TTYPE, TELOPT_ECHO: 'Caso aceite está opção
If bs(i - 1) = TELCMD_DO Then
objWinsock.SendData Chr$(TELCMD_IAC) + Chr$(TELCMD_WILL) + Chr$(bs(i))
Else
objWinsock.SendData Chr$(TELCMD_IAC) + Chr$(TELCMD_DO) + Chr$(bs(i))
End If
Case Else: 'Caso Rejeite
If bs(i - 1) = TELCMD_DO Then
objWinsock.SendData Chr$(TELCMD_IAC) + Chr$(TELCMD_WONT) + Chr$(bs(i))
Else
objWinsock.SendData Chr$(TELCMD_IAC) + Chr$(TELCMD_DONT) + Chr$(bs(i))
End If
End Select
End Select
Else
'Tudo que for saida
oString = oString + Chr(bs(i))
End If
i = i + 1
Wend
'Verifica se está esperando Usuário
If mStatus = RSH_ESPERA_LOGAR Then
If Right(oString, Len(mUsuarioProcura) + 1) = mUsuarioProcura Then
objWinsock.SendData mUsuario + Chr(10) 'Envia Usuario
mStatus = RSH_ESPERA_SENHA
End If
'Verifica se está esperando Senha
ElseIf mStatus = RSH_ESPERA_SENHA Then
If Right(oString, Len(mSenhaProcura) + 1) = mSenhaProcura Then
objWinsock.SendData mSenha + Chr(10) 'Envia senha
mStatus = RSH_ESPERA_NADA
End If
End If
'Caso ocorra erro enviar para que chamou
If oString <> vbNullString Then
RaiseEvent Result(oString)
End If
End Sub