VBA Использование Winsock для общения через порт 23 - PullRequest
0 голосов
/ 20 апреля 2020

Я нашел код ниже, который делает именно то, что я ищу, и я пытаюсь добавить его в свой проект MsAccess. Я добавляю MSWINSCK.OCX в качестве ссылки.

Sub Start_Telnet_Session()

    'Declare Variables
    Dim Data As String
    Dim Winsock1

    'Server IP, Port & Login Credentials
    TelnetServer = localhost
    TelnetPort = 23
    TelnetUser = test
    TelnetPassword = test
    TelnetCommands = ifconfig

    'Create WinSock Object & Connect to Server
    Set Winsock1 = New MSWinsockLib.Winsock
    Winsock1.RemoteHost = TelnetServer
    Winsock1.RemotePort = TelnetPort
    Winsock1.Connect

    'Wait Till connection is Success
    Do Until Winsock1.State = 7
        DoEvents
        If Winsock1.State = sckError Then
            Exit Sub
        End If
    Loop

    'Send UserName
    Winsock1.SendData TelnetUser & vbCrLf
        DoEvents: Excel.Application.Wait (Now + TimeValue("0:00:05"))

    'Send Password if you Server Requires one
    Winsock1.SendData TelnetPassword & vbCrLf
        DoEvents: Excel.Application.Wait (Now + TimeValue("0:00:05"))

    'Send Commands One by one & Get response from Server
    i = 5
    While TelnetCommands <> ""
        DoEvents: Excel.Application.Wait (Now + TimeValue("0:00:01"))

        Winsock1.SendData TelnetCommands & vbCrLf
        DoEvents: Excel.Application.Wait (Now + TimeValue("0:00:05"))
        'Get Response
        Winsock1.GetData Data
        Data = VBA.Replace(Data, vbLf, "")
        Data = VBA.Replace(Data, vbCr, vbNewLine)
        MsgBox Data

        i = i + 1
        TelnetCommands = ThisWorkbook.Sheets(1).Cells(i, 1)
    Wend

    MsgBox "Process Completed - Closing Telnet Connection"
    Winsock1.Close
End Sub

Но я столкнулся с проблемой. Я получил ошибку «Незарегистрированный класс». И он выделяет эту линию желтым цветом.

Set Winsock1 = New MSWinsockLib.Winsock

Я полностью потерян, почему я получаю эту ошибку?

На самом деле мой проект выглядит так https://prnt.sc/s2ui49

Спасибо за помощь

...