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 String) As 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