Rubrik: HTML/Internet/Netzwerk · Netzwerk | VB-Versionen: VB.NET | 04.02.05 |
NetSend mit VB.NET (mit Windowsoberfläche) Ein Beispiel, wie man unter VB.NET Kurznachrichten übers Netzwerk versenden kann. | ||
Autor: Markus Kalina | Bewertung: | Views: 23.573 |
ohne Homepage | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Hier ist ein kleines Beispielprogramm, das kurze Nachrichten via Nachrichtendienst im Netzwerk versendet. Es wird hierbei der API-Aufruf NetBufferSend in VB.NET eingesetzt. Die Beschreibung hier ist nur für die rudimentäre Funktion. Darum kann sich jeder ein eigenes Programm schreiben, das z.B. die Computer/User eines Netzwerkes zur Auswahl auflistet, eine Favoritenliste zur Schnellauswahl beinhaltet, eine Historie der Nachrichten bereitstellt oder den Status in einer Statusleiste anzeigt. Der Fantasie sind (fast) keine Grenzen gesetzt.
Zu beachten ist:
- .NET Framework muss installiert sein
- nur die Systemschriftart kann beim Empfänger angezeigt werden, da er nur eine simple Messagebox erhält
- in dieser Funktion sind aber Zeilenumbrüche möglich (im Gegensatz zur DOS-Version Net Send)
Wir benötigen nur ein paar Zutaten: Zwei Labels, zwei Textboxen, einen Button und eine Klasse und verwenden das ganze in einer Form - fertig ist das Progrämmchen:
In Visual Studio .NET ein neues Projekt "Windows-Anwendung" anlegen. Auf die Form1 ziehen wir zwei Labels mit Inhalte "An:" und "Nachricht:". Dazu passend zwei Textboxen "txtSendenAn" und "txtNachricht", Inhalt leer. Die Textbox "txtNachricht" muss noch auf MulitLine = True gesetzt werden, damit mehrzeilige Nachrichten versandt werden können. Einen Button mit dem Text "senden" plazieren wir auch noch auf die Form.
Zum Projekt fügen wir noch eine Klasse hinzu. Diese Klasse beinhaltet den API-Aufruf von NetSend. Damit das funktioniert, muss noch "InteropServices" importiert werden. Die Methode "Sende" ruft mit den Parametern die API auf: Der Code für die Klassendatei sieht dann folgendermaßen aus:
Imports System.runtime.InteropServices Public Class NetSend Public Function Sende(ByVal SendeAn As String, _ ByVal SendeNachricht As String) As Integer Return NetMessageBufferSend(Nothing, SendeAn, Nothing, _ SendeNachricht, SendeNachricht.Length * 2 + 2) End Function <DllImportAttribute("Netapi32", CharSet:=CharSet.Unicode)> _ Public Shared Function NetMessageBufferSend(ByVal servername As String, _ ByVal msgname As String, ByVal fromname As String, ByVal buf As String, _ ByVal buflen As Integer) As Integer End Function End Class
Mit einem Doppelklick auf den Button gelangen wir zu dessen Codeansicht. Dort tragen wir folgende Zeilen (zwischen "Private Sub ..." und "End Sub") ein:
Dim Message As New NetSend Dim erg As Integer ' Nachricht übermiiteln erg = Message.Sende(Me.txtSendenAn.Text, Me.txtNachricht.Text) ' Übermittlung erfolgreich? If erg = 0 Then MessageBox.Show("Nachricht erfolgreich übermittelt", "Übermittlung OK", _ MessageBoxButtons.OK, MessageBoxIcon.None) Else MessageBox.Show("Fehler: " & erg, "Keine Nachricht gesendet!", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End If
Das war eigentlich auch schon alles. Das Programm kann um verschiedene Teile ergänzt werden, die es ansprechender, einfacher/schneller zu handhaben machen - wie ich ja bereits aufgelistet habe. Ich habe z. B. durch eine Klasse, die mir Informationen zum Benutzer (Name, Beschreibung, Mail-Adresse, PC-Name), eine automatische Signatur erstellt, die immer angehängt wird. Somit weiß der Empfänger, von wem die Nachricht kam. Die eigentliche Funktion aber bleibt immer das gleiche: Das Versenden von Kurznachrichten im Netzwerk.