VisualBasic中的MSWinsock.Winsock事件处理

use*_*530 6 excel events vba winsock excel-vba

我正在尝试使用以下代码处理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
Run Code Online (Sandbox Code Playgroud)

但它永远不会进入Winsock1_Connect子程序,尽管Winsock1.State是"已连接".我想使用标准MS库,因为我的PC上没有管理权限,我无法注册一些自定义库.任何人都可以告诉我,我哪里错了?

Nes*_*cio 4

您是否在使用 MSWinsock 时遇到困难?
是使用自定义winsock对象的站点/教程。

另外...您需要在“Class”模块中声明 Winsock1 WithEvents :

Private WithEvents Winsock1 As Winsock
Run Code Online (Sandbox Code Playgroud)

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