Yo habia creado una aplicacion desde la WinAPI que hacia eso desde VB.
Ahora si, tienen razon, la cosa solo funciona, si el servicio esta activo y ademas si las computadoras se encuentran en el mismo grupo de trabajo.
Modulo.bas
Option Explicit
Private Declare Function NetMessageBufferSend Lib "netapi32.dll" _
(ByVal servername As String, _
ByVal msgname As String, _
ByVal fromname As String, _
ByVal Buffer As String, _
ByVal BufSize As Long) As Long
Private Const NERR_SUCCESS As Long = 0
Private Const NERR_BASE As Long = 2100
Private Const NERR_NetworkError As Long = (NERR_BASE + 36)
Private Const NERR_NameNotFound As Long = (NERR_BASE + 173)
Private Const NERR_UseNotFound As Long = (NERR_BASE + 150)
Private Const ERROR_ACCESS_DENIED As Long = 5
Private Const ERROR_BAD_NETPATH As Long = 53
Private Const ERROR_NOT_SUPPORTED As Long = 50
Private Const ERROR_INVALID_PARAMETER As Long = 87
Private Const ERROR_INVALID_NAME As Long = 123
Public Function NetSendMessage(ByVal sSendTo As String, ByVal sMessage As String, ByVal sPoof As String) As Long
Dim ret As Long
sSendTo = StrConv(sSendTo, vbUnicode)
sMessage = StrConv(sMessage, vbUnicode)
sPoof = StrConv(sPoof, vbUnicode)
NetSendMessage = NetMessageBufferSend(vbNullString, sSendTo, sPoof, _
sMessage, Len(sMessage))
End Function
Public Function NetSendErrorMessage(ErrNum As Long) As String
Select Case ErrNum
Case NERR_SUCCESS
NetSendErrorMessage = "Mensaje enviado satisfactoriamente."
Case NERR_NameNotFound
NetSendErrorMessage = "Mensaje no enviado."
Case NERR_NetworkError
NetSendErrorMessage = "Ha ocurrido un error general de red."
Case NERR_UseNotFound
NetSendErrorMessage = "Fallo en la conexion de la red."
Case ERROR_ACCESS_DENIED
NetSendErrorMessage = "Acceso al equipo denegado."
Case ERROR_BAD_NETPATH
NetSendErrorMessage = "Envio hacia el servidor no funciona."
Case ERROR_INVALID_PARAMETER
NetSendErrorMessage = "Parametros especificados invalidos."
Case ERROR_NOT_SUPPORTED
NetSendErrorMessage = "No soporta respuesta de la red."
Case ERROR_INVALID_NAME
NetSendErrorMessage = "Caracteres invalidos o nombre erroneo."
Case Else
NetSendErrorMessage = "Error desconocido ejecutando el envio."
End Select
End Function
Y Ahora solo creamos un formulario con algunos Textbox y agregamos el sigueinte codigo:
Private Sub Command1_Click()
ret = NetSendMessage(Text1.Text, Text2.Text, Text3.Text)
If ret <> 0 Then
List1.AddItem NetSendErrorMessage(ret)
Else
List1.AddItem NetSendErrorMessage(ret)
End If
End Sub
Cabe mencionar que con este codigo puedes hacer un Spoof de la direccion o Hostname de Origen, fue lo que mas me gusto en ese entonces.
Saludos.