300 lines
12 KiB
VB.net
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
|