vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Netzwerk   |   VB-Versionen: VB.NET04.02.05
NetSend mit VB.NET (mit Windowsoberfläche)

Ein Beispiel, wie man unter VB.NET Kurznachrichten übers Netzwerk versenden kann.

Autor:   Markus KalinaBewertung:     [ Jetzt bewerten ]Views:  23.503 
ohne HomepageSystem:  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.