Buenas necesito ayuda con este code....
El problema que tengo es que se envia el mensaje pero lo recivo yo en el pc local y no el destinatario a pesar de estar conectado a el (soy yo mismo en 127.0.0.1).
Gracias por la ayuda...
[Private Sub Command5_Click()
Dim send, mensaje
mensaje = "msg * " ' para añadirlo al codigo
texto = Text3.Text ' recoge el texto que se va a enviar
WS.SendData Shell(mensaje & texto) ' se envia el mensaje con el texto
End Sub
----------------------------------------------------------------------
Private Sub Text3_Change()
End Sub
una solucion seria que si vas a utilizar "Shell", mejor ulitices el mensajero de windows
"netsend"
Shell "netsend equipo mensaje"
no estoy muy seguro de la sintaxis del netsend, revisala, y recuerda que debe de estar activado en mensajero de windows dentro de los servicios del mismo.
Hla otra vez.El mensajero ese del que hablas cual es?
perdona por mi ignorancia....
esta hablando del netsend, pero en vista no funciona
asi es XcryptOR
si vas a trabajar tu aplicacion con windows Vista el mensajero no funciona!!!!
pero en XP funciona a la perfeccion
mira te paso un pequeño ejemplo...
Shell "Net send" & " " & Text1 & " " & Text2
Donde Text1 es el nombre o direccion IP del ordenador al que quieres mandar el msj
y Text2 es el mensaje que vas a mandar
Suerte!!!
:)
Cita de: uziel200 en 7 Diciembre 2008, 19:45 PM
asi es XcryptOR
si vas a trabajar tu aplicacion con windows Vista el mensajero no funciona!!!!
pero en XP funciona a la perfeccion
mira te paso un pequeño ejemplo...
Shell "Net send" & " " & Text1 & " " & Text2
Donde Text1 es el nombre o direccion IP del ordenador al que quieres mandar el msj
y Text2 es el mensaje que vas a mandar
Muy Importante no olvides dejar un especio en las comillas
& " (este es el espacio del que te hablo) " &
muy importante que lo dejes ya que de lo contrario ta mandara un error
Suerte!!!
:)
Muchas gracias. A probarlo se ha dicho.....jeje
Funciona bien si el servicio Messenger o Mensajero de Windows está activado. Antiguamente lo estaba por defecto, pero creo que desde el SP1 ya lo quitaron y si quieres usarlo tienes que activarlo manualmente, por lo que es una tontería usar un programa que no va a funcionar en casi ningún equipo.
Un Saludo!
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.