我正在尝试使用以下代码来处理Winsock_Connect事件(实际上我在Excel宏中需要它):

Dim Winsock1 As Winsock 'Object type definition

Sub Init()
    Set Winsock1 = CreateObject("MSWinsock.Winsock") 'Object initialization
    Winsock1.RemoteHost = "MyHost"
    Winsock1.RemotePort = "22"
    Winsock1.Connect

    Do While (Winsock1.State <> sckConnected)
        Sleep 200
    Loop
End Sub

'Callback handler
Private Sub Winsock1_Connect()
    MsgBox "Winsock1::Connect"
End Sub

但是,即使Winsock1.State为“已连接”,它也永远不会进入Winsock1_Connect子例程。
我想使用标准的MS库,因为我没有PC上的管理权限,并且无法注册某些自定义库。
谁能告诉我,我哪里错了?

最佳答案

您是否在使用MSWinsock卡住了?
Here是使用自定义winsock对象的站点/教程。

另外,您还需要在“类”模块中声明Winsock1 WithEvents :

Private WithEvents Winsock1 As Winsock

最后,请确保您引用了winsock ocx控件。
工具->引用->浏览->%SYSEM%\MSWINSCK.OCX

10-07 18:59