En windows podemos enviar mensajes a otros usuarios a través de la red de un dominio con el comando net send, siempre y cuando tengamos iniciado el servicio Mensajero de windows. Desde linux con smbclient -M también podemos hacer lo mismo.
Sin embargo siempre se enviará como remitente el equipo desde donde se envió el mensaje. Si queremos mandar un mensaje con un remitente distinto debemos recurrir al envío del mismo a través de la tubería \MAILSLOT\MESSNGR que tiene abierta windows si el servicio que comentaba antes está iniciado. Aquí muestro los pasos a seguir usando win32.
Primero se debe abrir esa tubería mediante un CreateFile poniendo como ruta lo siguiente \\<nombre de equipo>\\MAILSLOT\MESSNGR.
Después debemos escribir a esa tubería con WriteFile la siguiente cadena <origen>\0<destino>\0<mensaje>\0
Finalmente cerramos la tubería con CloseHandle.
Para ilustrar el funcionamiento, podeis bajaros el código fuente de un programa aquí.
Si quereis usarlo ya compilado, podeis bajaros el ejecutable aquí.
Y mucho cuidado con mensajes que contengan vasitos de agua 😛
Porque se pueden caer los plomos de repente. 😉
genial!!!!