API para usar el NET SEND en VB de forma anonima

Iniciado por FaiF (A¥åHøRå), 26 Mayo 2006, 22:41 PM

0 Miembros y 1 Visitante están viendo este tema.

FaiF (A¥åHøRå)

Hola!
Estoy con un código de la API-Guide que lo que hace es a través de la API NetMessageBuff erSend enviar un mensaje por LAN como si fuera un "net send".
El código que viene es este:

Código:

Private Declare Function NetMessageBufferSend Lib _
  "NETAPI32.DLL" (yServer As Any, yToName As Byte, _
  yFromName As Any, yMsg As Byte, ByVal lSize As Long) As Long
Private Const NERR_Success As Long = 0&
Public Function SendMessage(RcptToUser As String, _
   FromUser As String, BodyMessage As String) As Boolean

   Dim RcptTo() As Byte
   Dim From() As Byte
   Dim Body() As Byte

   RcptTo = RcptToUser & vbNullChar
   From = FromUser & vbNullChar
   Body = BodyMessage & vbNullChar

   If NetMessageBufferSend(ByVal 0&, RcptTo(0), ByVal 0&, _
        Body(0), UBound(Body)) = NERR_Success Then
     SendMessage = True
   End If

End Function
Private Sub Form_Load()
    'Example created by X-MaD (x-mad@zolnetwork.com)
    'Visit his website at http://www.zolnetwork.com/x-mad
    Dim RetVal As Boolean
    RetVal = SendMessage("Utente", "FromUser", "BodyText")
End Sub



Pues bien. Asi, si tienes el servicio Messenger activo, funciona. El  caso es que todo lo hace bien excepto lo de poner el From que se lo come en la funcion y pone un ByVal 0&.
He pensado que para conseguir que mandara el From podría cmabiar una parte de la función:

   If NetMessageBuff erSend(ByVal 0&, RcptTo(0), From(0), _
        Body(0), UBound(Body)) = NERR_Success Then
     SendMessage = True
   End If

Pero  al hacer esta modificación deja de funcionar. Alguien sabe como hacer que funcione??

Gracias y salu2

FaiF (A¥åHøRå)

Nadie sabe nada sobre este tema???  :o

salu2  ;)

AGRIPI

prueba con esto

function NetMessageBufferSend(ServerName: LPWSTR;
                              MsgName: LPWSTR;
                              FromName: LPWSTR;
                              Buf: LPWSTR;
                              BufLen: DWORD): DWORD; stdcall;
                              external 'NetApi32.dll' name 'NetMessageBufferSend'

FaiF (A¥åHøRå)

Ya ví el error. Es que solo permite enviar mensajes si el nombre del remitente es el mismo jeje  :rolleyes: . gracias