Imports System.IO Public Class uscntr_SendMSG Dim recserver As New List(Of String) Public recuser As New cTSUser Dim msg As String = " {0} /Server:{1} '{2}'" 'Username, Server, Nachricht Dim msgfin As String = "" Dim SingleUserRec As Boolean = False Public RecUsersList As New List(Of cRecUsers) Public RecArt As String = "" Private Sub uscntr_SendMSG_Load(sender As Object, e As EventArgs) Handles Me.Load 'txtLabelInfo.Text = "" 'FillPanWithServer() Select Case RecArt Case "", "Server" FillPanWithServer() SelectUniUser() Case "User" PanServerListe.Controls.Clear() For Each u As cRecUsers In RecUsersList ' u.username & vbCrLf Next FillPanWithUser() End Select End Sub Function FillPanWithServer() PanServerListe.Controls.Clear() Dim i As Integer = 0 Dim h As Integer = 0 For Each Server As String In Class1.TerminalServerList If Server Like "TS*" Or Server Like "Term*" Or Server Like "TERM*" Then Dim usrcntrl As New uscntr_TSServer usrcntrl.btnServer.Text = Server usrcntrl.Location = New Point(0, i * usrcntrl.Height) i = i + 1 h = i * usrcntrl.Height PanServerListe.Controls.Add(usrcntrl) AddHandler usrcntrl.btnServer.Click, Function() UpdateSelectedServerList() End Function End If Next Me.Height = h + 100 End Function Function FillPanWithUser() PanMain.Controls.Clear() PanMain.AutoScroll = True Dim i As Integer = 0 Dim h As Integer = 0 For Each User As cRecUsers In RecUsersList Dim usrcntrl As New uscntr_MessageUser usrcntrl.Label1.Text = User.userclientpc & " | " & User.username usrcntrl.Location = New Point(0, i * usrcntrl.Height) PanMain.Controls.Add(usrcntrl) AddHandler usrcntrl.btnDelete.Click, Function() PanMain.Controls.Remove(usrcntrl) RecUsersList.Remove(User) ReloadUsers() End Function i = i + 1 h = i * usrcntrl.Height Next End Function Function ReloadUsers() FillPanWithUser() End Function Sub UpdateSelectedServerList() recserver.Clear() For Each uc As uscntr_TSServer In PanServerListe.Controls If uc.selected Then ' LabelInfo.Text &= uc.btnServer.Text & vbCrLf recserver.Add(uc.btnServer.Text) End If Next End Sub Private Sub cmdVorschau_Click(sender As Object, e As EventArgs) Handles cmdVorschau.Click 'If SingleUserRec = True Then ' MsgBox("msg" & msgfin) 'Else ' For Each srv As String In recserver ' MsgBox(String.Format(msg, "*", srv, TextBox1.Text)) ' Next 'End If Dim mehmehmeh As String = "" For Each uUsersr In RecUsersList mehmehmeh &= uUsersr.userclientpc & " | " & uUsersr.username & vbCrLf Next ' MsgBox(mehmehmeh) End Sub Function SelectUniUser() 'wenn nur ein Empfänger If recuser.BenutzerAnmeldeName.Length > 0 Then SingleUserRec = True recuser.genNameKurz() 'LabelInfo.Text = String.Format(msg, recuser.NameKurz, recuser.TSServer, "Das ist ein Test!") For Each uc As uscntr_TSServer In PanServerListe.Controls If uc.btnServer.Text = recuser.TSServer Then uc.btnServer.PerformClick() uc.btnServer.Enabled = False Next End If End Function Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged If SingleUserRec = True Then msgfin = String.Format(msg, recuser.NameKurz, recuser.TSServer, TextBox1.Text) Else msgfin = String.Format(msg, "*", ErsterEintragVonListOfString(recserver), TextBox1.Text) End If ' LabelInfo.Text = "msg" & msgfin End Sub Private Sub cmdSenden_Click(sender As Object, e As EventArgs) Handles cmdSenden.Click If MsgBox("Nachricht senden?", MsgBoxStyle.OkCancel, "Senden?") = MsgBoxResult.Ok Then Select Case RecArt Case "", "Server" SendServer() Case "User" SendUser() End Select End If End Sub Private Function SendServer() If SingleUserRec = True Then cExtProgramme.msgsend(msgfin) Else Dim serverlist As String = "" For Each srv As String In recserver serverlist &= srv & " " ' cExtProgramme.msgsend(String.Format(msg, "*", srv, TextBox1.Text)) 'Threading.Thread.Sleep(3000) Next serverlist = serverlist.Substring(0, serverlist.Length - 1) 'MsgBox(serverlist) cExtProgramme.msg2server(TextBox1.Text, serverlist) End If End Function Private Function SendUser() If Not RecUsersList.Count > 0 Then MsgBox("Keine User in Liste") : Exit Function If Not File.Exists(Application.StartupPath & "\msgsend.bat") Then File.Create(Application.StartupPath & "\msgsend.bat") Dim msgbat As String = Application.StartupPath & "\msgsend.bat" Dim battext As String = "" For Each u As cRecUsers In RecUsersList 'MsgBox(u.username) battext &= (cExtProgramme.msgsend(String.Format(msg, u.username, u.userclientpc & "." & u.domain, TextBox1.Text), True)) & vbCrLf Next Class1.WriteToFile(msgbat, battext) Threading.Thread.Sleep(3000) Process.Start(msgbat) 'MsgBox(battext) End Function Function ErsterEintragVonListOfString(liste As List(Of String)) If liste.Count > 0 Then Return liste(0) Else Return "" End If End Function Private Sub PanMain_Paint(sender As Object, e As PaintEventArgs) Handles PanMain.Paint End Sub End Class Public Class cRecUsers Property domain As String = "" Property username As String = "" Property userclientpc As String = "" Public Sub New(_domain As String, _username As String, _userclientpc As String) Me.domain = _domain Me.username = _username Me.userclientpc = _userclientpc End Sub End Class