VisualBasic-Tutorial #4: Netsend
In diesem Tutorial geht es um das versenden von Nachrichten im
Netzwerk per "Net send". Es wird auch beschrieben, wie man den
Absender der Nachricht f�lscht, etc.
Beispiel f�r die Anwendung des Befehls:
Start->Ausf�hren: "Net Send LocalHost Hallo" -> sollte ein "hallo" an
den eigenen Rechner senden. (anstatt Localhost die eigene IP
verwenden ...)
Start->Ausf�hren: "Net Send Broadcast Hallo" -> sollte ein Hallo ans
gesamte Netzwerk senden.
In VisualBasic gibt es nun verschiedene M�glichkeiten solche
Nachrichten
zu versenden. die erste: man �ffnet "net.exe" per Shell und �bergibt
die n�tigen Parameter.
Dies ist nicht unbedingt der beste Weg, da man auf die net.exe
angewiesen ist und diese unter umst�nden gesperrt ist (in manchen
Schulnetzwerken kann dies der fall sein)
Die andere M�glichkeit ist eine API bzw. eine DLL zu verwenden und
genau diese will ich in diesem Tutorial anschauen.
Das brauchen wir dazu:
Code: |
1:Declare Function NetMessageBufferSend Lib "Netapi32" (ByVal sServerName$, ByVal sMsgName$, ByVal sFr
:omName$, ByVal sMessageText$, ByVal lBufferLength&) As Long |
Zudem noch:
Code: |
1:StrConv(String, Conversion As VbStrConv)
|
Um Strings in andere Variabel-Typen zu verwandeln (wie zum Beispiel Unicode).
Was man zur API wissen sollte, ist dass alle Strings als Unicode
�bergeben werden m�ssen.
Nun schauen wir uns mal an was wir der API-Funktion alles �bergeben
m�ssen.
1. Argument: sServerName$ : Der Server �ber welche die Nachricht
gesendet werden soll. Hier geben wir einen Nullstring an, dann wird
die Nachricht �ber den eigenen Rechner verschickt.
2. Argument: sMsgName$ : Der Empf�nger (PC-Name oder IP) als
Unicode-String.
3. Argument: sFromName$ : Der Sender (Im Normalfall der Name oder
die IP eines Rechners) als Unicode-String. Das sch�ne daran: Es kann
irgendetwas angegeben werden, zum Beispiel auch "Administrator" oder
der Name eines fremden PCs.
4. Argument: sMessageText$ : Die Nachricht die verschickt werden
soll (auch als Unicode-String)
5. Argument: lBufferLength& : Die Buffer-L�nge. (In diesem Fall die
L�nge der zu sendenden Nachricht.)
Kann ermittelt werden mit:
Code: |
7:len(StrConv(NACHRICHT,vbUnicode))
|
Wobei NACHTRICHT durch den zu versendenden Text ersetzt wird.
Hier nun ein kleines Beispiel-Quelltext welcher dem eigenen Rechner
eine solche Nachricht schickt:
Code: |
1:Private Declare Function NetMessageBufferSend Lib "Netapi32" (ByVal sServerName$, ByVal sMsgName$, B
:yVal sFromName$, ByVal sMessageText$, ByVal lBufferLength&) As Long
2:
3:Private Sub Form_Click()
4:NetMessageBufferSend "", StrConv("localhost", vbUnicode), StrConv("Ich", vbUnicode), StrConv("hallo"
:, vbUnicode), Len(StrConv("hallo", vbUnicode))
5:End Sub
6:
|
Falls Fragen auftauchen, schreibt sie ins G�stebuch oder schickt
mir ein Email: webmaster'at'black-silence'dot'ch Viele Gr�sse
Euer Webmaster |