Files
Doku/Dokumentation/uscntr_SendMSG.vb
2025-03-18 13:43:25 +01:00

204 lines
6.8 KiB
VB.net

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