;=============================================================================================================
;                                       
;=============================================================================================================

  C#:

[DllImport("NetAPI32.dll", CharSet=CharSet.Auto)]
public static extern UInt32 NetMessageBufferSend(
String server,
String msg,
String from,
IntPtr buf ,
UInt32 len);

/*

NET_API_STATUS NetMessageNameAdd(
LPCWSTR servername,
LPCWSTR msgname
);

*/

[DllImport("NetAPI32.dll", CharSet=CharSet.Auto )]
public static extern UInt32 NetMessageNameAdd(
String server,
String msg);

[DllImport("Netapi32.dll", EntryPoint="NetApiBufferFree", ExactSpelling=true, SetLastError=true)]
public static extern int NetApiBufferFree(IntPtr Buffer);

/*
NET_API_STATUS NetMessageBufferSend(
LPCWSTR servername,
LPCWSTR msgname,
LPCWSTR fromname,
LPBYTE buf,
DWORD buflen
);*/

   :
public static UInt32 NetSendMessage( string Server, string Alias, string From, string MessageText)
{ //Server -       -   null (local machine)
//Aliase -   
//From - 
//MessageText  
//         !!!
int BufSize = MessageText.Length*2+1;
IntPtr buf = Marshal.AllocHGlobal(BufSize);
NetApiBufferFree(buf);
buf = Marshal.StringToHGlobalAuto(MessageText);
uint res = NetMessageBufferSend(Server, Alias, From, buf, (uint)BufSize);
return res;
}

==========================
++:

#define UNICODE
   #define MESGLEN 50
   WCHAR awcToName[] = TEXT("DomainName*");
   WCHAR awcFromName[] = Text("MyComputer");
   WCHAR awcMesgBuffer[MESGLEN] = Text("This is Test Message");
   NET_API_STATUS nasStatus;

   nasStatus = NetMessageBufferSend(NULL,
                                    awcToName,
                                    awcFromName,
                                    awcMesgBuffer,
                                    MESGLEN);
=========================
Delphi:

function NetSend(const sTo, sMessage: string): Boolean;
type
PNetMessageBufferSend = ^TNetMessageBufferSend;
TNetMessageBufferSend = function(
servername: PWideChar;
msgname: PWideChar;
fromname: PWideChar;
buf: PBYTE;
buflen: DWORD
):Integer; stdcall;
var
wMessage, wTo: PWideChar;
i, hLib: Integer;
NetMessageBufferSend: TNetMessageBufferSend;
begin
Result:= False;
hLib:= LoadLibrary('NetApi32.dll');
if hlib > 0 then
try
@NetMessageBufferSend:= GetProcAddress(hLib, 'NetMessageBufferSend');
if @NetMessageBufferSend <> nil then
begin
wMessage:= CoTaskMemAlloc((Length(sMessage) + 1) * sizeof(WideChar));
try
wTo:= CoTaskMemAlloc((Length(sTo) + 1) * sizeof(WideChar));
try
StringToWideChar(sMessage, wMessage, Length(sMessage) + 1);
StringToWideChar(sTo, wTo, Length(sTo) + 1);
i:= NetMessageBufferSend(nil, wTo, nil, PBYTE(wMessage), (Length(sMessage) + 1) * sizeof(WideChar));
Result:= i = ERROR_SUCCESS;
if not Result then
MessageBox(GetForegroundWindow, 'Not send!', nil, $1010);
finally
CoTaskMemFree(wTo);
end;
finally
CoTaskMemFree(wMessage);
end;
end else
MessageBox(GetForegroundWindow, 'Not send!', nil, $1010);
finally
FreeLibrary(hLib);
end
else
MessageBox(GetForegroundWindow, 'Not send!', nil, $1010);
end;

================================
C++:

#include <assert.h>

#include <lmserver.h>

#include <lmapibuf.h>



void __fastcall TfrmMain::SendAll(AnsiString ErrorMessage)

{

 DWORD i;

 NET_API_STATUS Stat;

 LPSERVER_INFO_101 myInfo = NULL;

 LPSERVER_INFO_101 pTmpBuf;

 DWORD level = 101;

 DWORD prefmaxlen = -1;

 DWORD entriesread = 0;

 DWORD totalentries = 0;

 DWORD servertype = SV_TYPE_ALL;

 DWORD resume_handle = 0;

 AnsiString txt;



try{

 Stat = NetServerEnum(NULL, level, (LPBYTE*) &myInfo, prefmaxlen,

                      &entriesread, &totalentries, servertype,

                      NULL, &resume_handle);

 if(Stat == 0){

  if((pTmpBuf = myInfo) != NULL){

   for(i = 0; i < entriesread; i++, pTmpBuf++){

    assert(pTmpBuf != NULL);

    txt = "NET SEND " + AnsiString(pTmpBuf->sv101_name) + "--" + ErrorMessage;

    WinExec(txt.c_str(), 0);

     }

    }

   }

  }

  __finally

  {

   if(myInfo != NULL) NetApiBufferFree(myInfo);

  }

}
===============================