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 Load2DGV() ' (Optional ByVal Client As Boolean = False) 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 = dgvTSSitzungen.CurrentRow.Cells("TSServer").Value & "." & dgvTSSitzungen.CurrentRow.Cells("Domain").Value 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 End Class