B + Winsock + CGI 实现 QQ (OICQ) 在线检测(支持代理服务器)! 标准 EXE 例程下载 http://microinfo.top263.net/Zip/WskQQExe.zip 
'请先 "引用" -> "浏览" -> "Windows 目录\SYSTEM\MSWINSCK.OCX" Option Explicit Dim sResponse As String Dim WithEvents WinsockX As MSWinsockLib.Winsock Dim WithEvents WinsockListenX As MSWinsockLib.Winsock Private Sub Check1_Click() Text2.Enabled = VBA.IIf(Check1.Value = vbChecked, True, False) Text3.Enabled = Text2.Enabled End Sub Private Sub Check2_Click() If Check2.Value = vbChecked Then    Text4.Enabled = False    WinsockListenX.Protocol = sckTCPProtocol    WinsockListenX.LocalPort = CInt(Text4.Text)    WinsockListenX.Listen Else    Text4.Enabled = True    If WinsockX.State <> sckClosed Then       WinsockX.Close    End If    If WinsockListenX.State <> sckClosed Then       WinsockListenX.Close    End If End If End Sub Private Sub Command1_Click() sResponse = "" Command1.Enabled = False Me.MousePointer = vbHourglass Dim i As Long If WinsockX.State <> sckClosed Then    WinsockX.Close End If WinsockX.Protocol = sckTCPProtocol If Check1.Value = vbChecked Then    WinsockX.Connect Trim(Text2.Text), CInt(Text3.Text) Else    WinsockX.Connect "search.tencent.com", 80 End If Do Until WinsockX.State = sckConnected    DoEvents    i = i + 1    If i > 50000 Then       If VBA.MsgBox("TimeOut,Retry?", vbQuestion + vbYesNo) = vbYes Then          i = 0       Else          Command1.Enabled = True          Me.MousePointer = vbDefault          Exit Sub       End If    End If Loop WinsockX.SendData "POST " & VBA.IIf(Check1.Value = vbChecked, "HTTP://search.tencent.com", "") & "/cgi-bin/friend/oicq_find HTTP/1.1" & vbCrLf _                 & "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*" & vbCrLf _                 & "Accept -Language: zh -cn" & vbCrLf _                 & "Content-Type: application/x-www-form-urlencoded" & vbCrLf _                 & "Accept -Encoding: gzip , deflate" & vbCrLf _                 & "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)" & vbCrLf _                 & "Host: " & WinsockX.RemoteHost & vbCrLf _                 & "Content-Length: " & VBA.Len(VBA.Trim("oicq_no=" & VBA.Trim(Text1.Text) & "&mov=0&begnum=0")) & vbCrLf _                 & "Connection: Keep -Alive" & vbCrLf _                 & "Cookie: 3wave=1" & vbCrLf & vbCrLf _                 & "oicq_no=" & VBA.Trim(Text1.Text) & "&mov=0&begnum=0" End Sub Private Sub Form_Load() Text1.Text = "6881818" Text2.Text = "192.168.0.1" Text3.Text = "8080" Text4.Text = "80" Set WinsockX = New MSWinsockLib.Winsock Set WinsockListenX = New MSWinsockLib.Winsock Check1_Click Check2_Click End Sub Private Sub WinsockListenX_ConnectionRequest(ByVal requestID As Long) If WinsockX.State <> sckClosed Then    WinsockX.Close End If WinsockX.Accept requestID End Sub Private Sub WinsockX_Close() Command1.Enabled = True Me.MousePointer = vbDefault If sResponse Like "*http://img.tencent.com/face/*-3.gif*" Then    MsgBox "Off line!" ElseIf sResponse Like "*http://img.tencent.com/face/*-2.gif*" Then    MsgBox "On line!" ElseIf sResponse Like "*http://img.tencent.com/face/*-1.gif*" Then    MsgBox "Hide!" End If End Sub Private Sub WinsockX_DataArrival(ByVal bytesTotal As Long) Dim s As String WinsockX.GetData s, vbString If Check2.Value = vbChecked Then    MsgBox s End If sResponse = sResponse & s End Sub 
ActiveX DLL 例程下载: http://microinfo.top263.net/Zip/WskQQDll.zip  
 
  |