Files
Doku/Dokumentation/uscntr_TSSitzungen.vb

300 lines
12 KiB
VB.net

Public Class uscntr_TSSitzungen
Dim Client As Boolean = False
Dim SelectedIndex As Integer = 0
Dim StartIndex As Integer = 0
Public Sub uscntr_TSSitzungen_Load(sender As Object, e As EventArgs) Handles Me.Load
AddHandler Main.ResetButtonPressed, AddressOf Reset
Class1.EnableDoubleBuffered(dgvTSSitzungen)
Load2DGV()
End Sub
Function checkwartung() As Boolean
Dim ds As New DataSet
cSQL.SQL2DS("select * from TbL_Dienste where Name = 'Wartung' ", ds)
If Not ds.Tables(0).Rows.Count = 0 Then
Dim row As DataRow = ds.Tables(0).Rows(0)
If Convert.ToBoolean(row("Aktiv")) = True Then
Return True
Else
Return False
End If
End If
End Function
Function Load2DGV() ' (Optional ByVal Client As Boolean = False)
chkWartung.Checked = checkwartung()
If Client = False Then
Dim ds As New DataSet
cSQL.SQL2DS("SELECT * FROM TbL_TSSitzungen WHERE Name LIKE '" & ReturnOfTheWhere() & "' OR TSServer LIKE '" & ReturnOfTheWhere() & "' OR Company LIKE '" & ReturnOfTheWhere() & "' ORDER BY NAME", ds)
dgvTSSitzungen.DataSource = ds.Tables(0)
With dgvTSSitzungen
.DefaultCellStyle.BackColor = Color.White
.AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
.RowHeadersVisible = False
'.DataSource = ds.Tables(0)
.Columns("LastReport").Visible = False
.Columns("Domain").Visible = False
.Columns("BenutzerAnmeldeName").Visible = False
.Columns("TeamviewerID").Visible = False
.Columns("Name").Width = 160
.Columns("LastLogon").Visible = True
.Columns("LastLogon").HeaderText = "Sitzungsst."
.Columns("LastLogon").Width = 65
.Columns("Company").Visible = True
.Columns("Company").HeaderText = "Firma"
'.Columns("TeamviewerID").Width = 80
'.Columns("TSServer").Width = 80
.Columns("TSServer").HeaderText = "Host"
.AutoResizeColumn(1)
End With
lblAnzahl.Text = dgvTSSitzungen.Rows.Count
LoadTSServer()
Else
Dim ds As New DataSet
'cSQL.SQLCommand("DELETE FROM TbL_ThinClients where LastReport < (dateadd(HOUR, -1, getdate()))")
cSQL.SQL2DS("SELECT * FROM TbL_ThinClients WHERE Name LIKE '" & ReturnOfTheWhere() & "' OR ClientName LIKE '" & ReturnOfTheWhere() & "' ORDER BY NAME", ds)
With dgvTSSitzungen
.RowHeadersVisible = False
.DataSource = ds.Tables(0)
.Columns("Domain").Visible = False
.Columns("BenutzerAnmeldeName").Visible = False
.Columns("LastReport").Visible = False
.Columns("Company").Visible = False
'.Columns("Name").Width = 110 'AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("TeamviewerID").Width = 80
'.Columns("TSServer").Width = 55
.AutoResizeColumn(1)
End With
lblAnzahl.Text = dgvTSSitzungen.Rows.Count
End If
Try
dgvTSSitzungen.Rows(SelectedIndex).Selected = True
dgvTSSitzungen.FirstDisplayedScrollingRowIndex = StartIndex
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Function
Private Sub dgvTSSitzungen_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTSSitzungen.CellDoubleClick 'dgvTSSitzungen.CellContentDoubleClick,
Dim sitzung As String = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TeamviewerID").Value)
cExtProgramme.StartTeamviewer(sitzung)
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Load2DGV()
End Sub
Private Sub RefreshToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CmdUpdate.Click, UpdateToolStripMenuItem.Click
Load2DGV()
End Sub
Private Sub chkAutoUpdate_CheckedChanged(sender As Object, e As EventArgs) Handles chkAutoUpdate.CheckedChanged
If chkAutoUpdate.Checked Then
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If
End Sub
Private Function LoadTSServer()
Dim ds As New DataSet
cSQL.SQLCommand("DELETE FROM TbL_TSSitzungen where LastReport < (dateadd(HOUR, -1, getdate()))")
cSQL.SQL2DS("SELECT DISTINCT TSServer, Domain FROM TbL_TSSitzungen", ds)
Class1.TerminalServerList.Clear()
For Each r As DataRow In ds.Tables(0).Rows
Class1.TerminalServerList.Add(r.Item(0).ToString & "." & r.Item(1).ToString)
Next
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles cmdNachricht.Click
Dim send As New frmLeer
send.Text = "Nachricht senden"
Dim usrcntrl As New uscntr_SendMSG
If Client = True Then usrcntrl.RecArt = "User"
usrcntrl.Dock = DockStyle.Fill : send.PanMain.Controls.Add(usrcntrl)
send.Show()
End Sub
Private Sub NachrichtSendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NachrichtSendenToolStripMenuItem.Click
Dim send As New frmLeer
Dim usrcntrl As New uscntr_SendMSG
If dgvTSSitzungen.SelectedRows.Count = 1 Then
send.Text = "Nachricht senden an " & dgvTSSitzungen.CurrentRow.Cells("Name").Value.ToString
usrcntrl.recuser.Name = dgvTSSitzungen.CurrentRow.Cells("Name").Value.ToString
usrcntrl.recuser.BenutzerAnmeldeName = dgvTSSitzungen.CurrentRow.Cells("BenutzerAnmeldeName").Value.ToString
Select Case Client
Case False
usrcntrl.recuser.TSServer = dgvTSSitzungen.CurrentRow.Cells("TSServer").Value.ToString & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value.ToString
Case True
usrcntrl.recuser.TSServer = dgvTSSitzungen.CurrentRow.Cells("ClientName").Value.ToString & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value.ToString
End Select
Else
send.Text = "Nachricht an mehrere Empfänger"
usrcntrl.RecArt = "User"
For Each r As DataGridViewRow In dgvTSSitzungen.SelectedRows
Dim u As New cRecUsers(r.Cells("Domain").Value.ToString, cTSUser.genNameKurz(r.Cells("BenutzerAnmeldeName").Value.ToString), r.Cells("TSServer").Value.ToString)
usrcntrl.RecUsersList.Add(u)
Next
' MsgBox("!")
End If
usrcntrl.Dock = DockStyle.Fill : send.PanMain.Controls.Add(usrcntrl)
send.Show()
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Load2DGV() '(TextBox1.Text)
End Sub
Function ReturnOfTheWhere()
Dim ding As String = "%{0}%"
Return String.Format(ding, TextBox1.Text)
End Function
Function Reset()
btnSitzung.PerformClick()
TextBox1.Text = ""
End Function
Public Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
'TextBox1.Text = ""
Reset()
End Sub
Private Sub VerbindenMitTeamVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VerbindenMitTeamVToolStripMenuItem.Click
Dim sitzung As String = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TeamviewerID").Value)
cExtProgramme.StartTeamviewer(sitzung)
End Sub
Private Sub btnClick(sender As Object, e As EventArgs) Handles btnSitzung.Click, btnClient.Click
Select Case sender.name
Case "btnSitzung"
btnSitzung.BackColor = Color.Green : btnClient.BackColor = Color.DarkGray
Client = False
Case "btnClient"
btnClient.BackColor = Color.Red : btnSitzung.BackColor = Color.DarkGray
Client = True
End Select
cmdNachricht.Enabled = Not Client
Load2DGV()
End Sub
Private Sub ProfildatenÖffnenExplorerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProfildatenÖffnenExplorerToolStripMenuItem.Click
Dim Username As String = dgvTSSitzungen.CurrentRow.Cells("BenutzerAnmeldeName").Value
Dim Server As String
Select Case Client
Case False
Server = dgvTSSitzungen.CurrentRow.Cells("TSServer").Value & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value
Case True
Server = dgvTSSitzungen.CurrentRow.Cells("ClientName").Value & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value
End Select
Dim temp As String = Username
Do Until temp.Substring(0, 1) = "\"
temp = temp.Substring(1, temp.Length - 1)
Loop
Username = temp.Substring(1, temp.Length - 1)
Dim Path As String = "\\" & Server & "\C$\Users\" & Username
IO.Directory.CreateDirectory(Path)
Process.Start(Path)
End Sub
Private Sub dgvTSSitzungen_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTSSitzungen.CellContentClick, dgvTSSitzungen.CellClick
Timer1.Enabled = False
chkAutoUpdate.Checked = False
If timDisUpdateTimer.Enabled = True Then
timDisUpdateTimer.Stop() : timDisUpdateTimer.Start()
Else
timDisUpdateTimer.Enabled = True
End If
SelectIndexes()
End Sub
Private Sub DGVScroll() Handles dgvTSSitzungen.Scroll
SelectIndexes()
End Sub
Function SelectIndexes()
SelectedIndex = dgvTSSitzungen.CurrentRow.Index
StartIndex = dgvTSSitzungen.FirstDisplayedScrollingRowIndex
End Function
Private Sub timDisUpdateTimer_Tick(sender As Object, e As EventArgs) Handles timDisUpdateTimer.Tick
' MsgBox("Tick!")
chkAutoUpdate.Checked = True
Timer1.Enabled = True
timDisUpdateTimer.Enabled = False
End Sub
Private Sub TeamVIDKopierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TeamVIDKopierenToolStripMenuItem.Click
Clipboard.SetText(Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TeamviewerID").Value))
End Sub
Private Sub VerbindenMitAnydeskToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VerbindenMitAnydeskToolStripMenuItem.Click
Dim Name As String = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("BenutzerAnmeldeName").Value)
Name = Name.Substring(Name.LastIndexOf("\") + 1)
Dim sitzung As String = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TSServer").Value) & "\" & Name
cExtProgramme.RunAnyDeskWithPassword(sitzung)
End Sub
Private Sub HostnameKopierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HostnameKopierenToolStripMenuItem.Click
Dim host As String = ""
If Client Then
host = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("ClientName").Value)
Else
host = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TSServer").Value)
End If
Clipboard.SetText(host)
End Sub
Private Sub chkWartung_CheckedChanged(sender As Object, e As EventArgs) Handles chkWartung.CheckedChanged
Dim result As MsgBoxResult
If chkWartung.Checked Then
result = MsgBox("Hiermit werden alle Anmeldungen von ThinClients unterbunden. Sicher? ", MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation, "Warnung")
End If
If result = MsgBoxResult.No Then
chkWartung.Checked = False
Exit Sub
End If
Dim werte As New Dictionary(Of String, Object)
werte.Add("Aktiv", chkWartung.Checked)
cSQL.UpdateSQL_("TbL_Dienste", werte, "Name = 'Wartung'")
Load2DGV()
End Sub
End Class