Zurück zur Homepage

Net Send aus VB(A)

Unter NT, 2000 und XP kann man Net Send verwenden, um Meldungen an andere Rechner im Netzwerk zu verschicken. Das wird eventuell mittels SHELL funzen, sicherer ist aber die API-Funktion NetMessageBufferSend. Sie macht exakt das gleiche wie Net Send.

Ursprünglich hat es unter XP funktioniert, den FromName zu verwenden. Neuerdings funktioniert das nicht mehr, es darf an dieser Stelle nichts mehr übergeben werden. Bei der Übergabe eines Nullpointers wird der echte Absendername verwendet, alles andere führt zu einem Fehler. Möglicherweise ist das ein Sicherheitsupdate von Microsoft.

Beispielmappe (netsend.zip 11 KB

 

Option Explicit
Private Declare Function NetMessageBufferSend _
   
Lib "Netapi32.dll" ( _
   
ByVal lpServerName As Long, _
   ToName 
As Byte, _
   
ByVal FromName As Long, _
   MsgBuffer 
As Byte, _
   
ByVal lnBufLen As Long _
   ) 
As Long

Private Const NERR_Success As Long = 0&

Public Function MessageSenden( _
    Empfänger 
As String, _
    Body 
As StringAs Boolean
'Unter NT, 2000, XP
Dim iEmpfänger() As Byte
Dim iBody() As Byte
iEmpfänger = Empfänger & vbNullChar
iBody = Body & vbNullChar
MessageSenden = NetMessageBufferSend( _
    0, _
    iEmpfänger(0), _
    0, _
    iBody(0), _
    
UBound(iBody) + 1 _
    ) = NERR_Success
End Function