From 2197c92cbaa15541421c932c387c10b95dfd2896 Mon Sep 17 00:00:00 2001 From: ms Date: Fri, 25 Oct 2019 11:48:37 +0200 Subject: [PATCH] TSSittzungen --- Dokumentation/Classes/Class1.vb | 53 +++- Dokumentation/Classes/Ext_Programme.vb | 17 +- Dokumentation/Classes/cBenutzer.vb | 2 +- Dokumentation/Classes/cBerechtigungen.vb | 14 +- Dokumentation/Classes/cEintrag.vb | 14 +- Dokumentation/Classes/cFirewallEntry.vb | 6 +- Dokumentation/Classes/cHost.vb | 26 +- Dokumentation/Classes/cNetzwerk.vb | 2 +- Dokumentation/Classes/{SQL.vb => cSQL.vb} | 2 +- Dokumentation/Classes/cTSUser.vb | 17 ++ Dokumentation/Dokumentation.vbproj | 33 ++- Dokumentation/Login/Login.vb | 2 + Dokumentation/Main.Designer.vb | 125 +++++++--- Dokumentation/Main.vb | 66 +++-- .../My Project/Resources.Designer.vb | 32 ++- Dokumentation/My Project/Resources.resx | 63 +++-- Dokumentation/Resources/Update.png | Bin 0 -> 3269 bytes Dokumentation/Resources/mail20.png | Bin 0 -> 1722 bytes Dokumentation/Resources/msg.exe | Bin 0 -> 26112 bytes Dokumentation/frmAllgemeinEintrag.vb | 6 +- Dokumentation/frmHostBearbeiten.Designer.vb | 23 +- Dokumentation/frmHostBearbeiten.vb | 16 +- Dokumentation/uscntr_Firewalleinstellungen.vb | 2 +- Dokumentation/uscntr_FunktionAdmin.vb | 2 +- Dokumentation/uscntr_SendMSG.Designer.vb | 145 +++++++++++ Dokumentation/uscntr_SendMSG.resx | 120 +++++++++ Dokumentation/uscntr_SendMSG.vb | 85 +++++++ Dokumentation/uscntr_TSServer.Designer.vb | 54 ++++ Dokumentation/uscntr_TSServer.resx | 120 +++++++++ Dokumentation/uscntr_TSServer.vb | 13 + Dokumentation/uscntr_TSSitzungen.Designer.vb | 233 ++++++++++++++++++ Dokumentation/uscntr_TSSitzungen.resx | 129 ++++++++++ Dokumentation/uscntr_TSSitzungen.vb | 104 ++++++++ Dokumentation_Updater/Update.Designer.vb | 2 +- Dokumentation_Updater/Update.vb | 2 +- 35 files changed, 1397 insertions(+), 133 deletions(-) rename Dokumentation/Classes/{SQL.vb => cSQL.vb} (99%) create mode 100644 Dokumentation/Classes/cTSUser.vb create mode 100644 Dokumentation/Resources/Update.png create mode 100644 Dokumentation/Resources/mail20.png create mode 100644 Dokumentation/Resources/msg.exe create mode 100644 Dokumentation/uscntr_SendMSG.Designer.vb create mode 100644 Dokumentation/uscntr_SendMSG.resx create mode 100644 Dokumentation/uscntr_SendMSG.vb create mode 100644 Dokumentation/uscntr_TSServer.Designer.vb create mode 100644 Dokumentation/uscntr_TSServer.resx create mode 100644 Dokumentation/uscntr_TSServer.vb create mode 100644 Dokumentation/uscntr_TSSitzungen.Designer.vb create mode 100644 Dokumentation/uscntr_TSSitzungen.resx create mode 100644 Dokumentation/uscntr_TSSitzungen.vb diff --git a/Dokumentation/Classes/Class1.vb b/Dokumentation/Classes/Class1.vb index cdd49ad..7c1286f 100644 --- a/Dokumentation/Classes/Class1.vb +++ b/Dokumentation/Classes/Class1.vb @@ -21,8 +21,10 @@ Public Class Class1 Public Shared DebugText As String = "" Public Shared GroupUsers As List(Of cBenutzer) Public Shared dtSuchergebnis As DataTable + Public Shared TeamviewerToken As String = "6920997-rtea7sZy35Ujw2Erm3OP" Public Shared HostList As New List(Of String) + Public Shared TerminalServerList As New List(Of String) Public Shared Sub EnableDoubleBuffered(ByVal dgv As DataGridView) @@ -33,6 +35,7 @@ Public Class Class1 End Sub Public Shared Function CheckDebug() + Dim Debugoverride As Boolean = True 'wenn True dann Override auf Produktiv! Dim Startparameter As String = "" Dim i As Integer For Each s As String In Environment.GetCommandLineArgs @@ -45,15 +48,13 @@ Public Class Class1 i += 1 Next - If Main.sAppPath Like "*\bin\Debug" Or Startparameter = "debug" Then + If (Main.sAppPath Like "*\bin\Debug" Or Startparameter = "debug") And Debugoverride = False Then DebugMode = True Class1.DBConString = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.FilePath = "\\192.168.0.253\backup\temp_Sebastian\DokuTest" Else - 'Class1.DBConString = "Server=192.168.0.94\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.DBConString = "Server=buchhaltung.verag.ost.dmn\SQLEXPRESS;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" - 'Class1.FilePath = "\\192.168.0.90\f\EDV-Wartung\Dokumentation" Class1.FilePath = "\\DEVELOPER.verag.ost.dmn\f\EDV-Wartung\Dokumentation" End If End Function @@ -131,6 +132,52 @@ Public Class Class1 End Try End Function + Public Shared Function datatable_2_csv_export(dt As DataTable) + Dim savefiledialog As New SaveFileDialog + Dim firstin As String + Dim out As String + Dim in2 As String + Dim header As String + + savefiledialog.Filter = "CSV files (*.csv)|*.CSV" + savefiledialog.InitialDirectory = "C:\Verag" + savefiledialog.ShowDialog() + + + Try + For r As Integer = 0 To dt.Rows.Count - 1 + For c As Integer = 0 To dt.Columns.Count - 1 + 'test &= r & c & vbCrLf + Try + 'test &= Replace(quelldgv.Rows(r).Cells(c).Value.ToString, vbCrLf, "vbCrlLf") + firstin = dt.Rows(r).Item(c).ToString + firstin = Replace(firstin, ";", ",") + 'in2 = """" & firstin & """" & ";" + in2 = firstin & ";" + out &= Replace(in2, vbCrLf, "##vbCrLf##") + Catch ex As Exception + MsgBox(ex.Message) + out &= "ooo" + End Try + + Next + + out &= "nZ" + Next + For c As Integer = 0 To dt.Columns.Count - 1 + header &= dt.Columns(c).ColumnName & ";" + Next + out = Replace(out, "nZ", vbCrLf) + 'MsgBox(out) + Using sw As New IO.StreamWriter(savefiledialog.FileName) + sw.WriteLine(header) + sw.WriteLine(out) + End Using + Catch ex As Exception + MsgBox("datatable_2_csv_export: " & ex.Message) + End Try + End Function + Public Shared Function hochkomma(textin As String) Dim textout As String = textin.Replace("'", "''") Return (textout) diff --git a/Dokumentation/Classes/Ext_Programme.vb b/Dokumentation/Classes/Ext_Programme.vb index 8dd61d3..fc9752b 100644 --- a/Dokumentation/Classes/Ext_Programme.vb +++ b/Dokumentation/Classes/Ext_Programme.vb @@ -43,11 +43,24 @@ End Try End Function - Public Shared Function pingip(ip As String) + Public Shared Function pingip(ip As String, Optional ByVal Argument As String = "") Dim ping As New Process ping.StartInfo.FileName = "cmd.exe" - ping.StartInfo.Arguments = " /k ping " & ip + ping.StartInfo.Arguments = " /k ping " & ip & Argument ping.Start() End Function + Public Shared Function msgsend(argumente As String) + Try + Dim msg As New Process + System.IO.File.WriteAllBytes("msg.exe", My.Resources.msg) + msg.StartInfo.FileName = "msg.exe" + 'msg.StartInfo.WorkingDirectory = "C:\Windows\System32\" + msg.StartInfo.Arguments = argumente + msg.Start() + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Function + End Class diff --git a/Dokumentation/Classes/cBenutzer.vb b/Dokumentation/Classes/cBenutzer.vb index 15e8190..56f7906 100644 --- a/Dokumentation/Classes/cBenutzer.vb +++ b/Dokumentation/Classes/cBenutzer.vb @@ -117,7 +117,7 @@ Public Class cBenutzer Function isDokuAdmin() As Boolean Dim ds As New DataSet - SQL.SQL2DS("select * from TbL_Berechtigungen where Benutzeranmeldename = '" & Me.BenutzeranmeldeName & "' AND Standort = 'DokuAdmin'", ds) + cSQL.SQL2DS("select * from TbL_Berechtigungen where Benutzeranmeldename = '" & Me.BenutzeranmeldeName & "' AND Standort = 'DokuAdmin'", ds) If ds.Tables(0).Rows.Count > 0 Then Return True Else diff --git a/Dokumentation/Classes/cBerechtigungen.vb b/Dokumentation/Classes/cBerechtigungen.vb index 6667e04..8ea923d 100644 --- a/Dokumentation/Classes/cBerechtigungen.vb +++ b/Dokumentation/Classes/cBerechtigungen.vb @@ -23,7 +23,7 @@ Public Class cBerechtigungen Public Function getFromSQL() '(ip As String) Dim ds As New DataSet Dim test As String = "" - SQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "' AND Standort = '" & Standort & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "' AND Standort = '" & Standort & "'", ds) If ds.Tables(0).Rows.Count > 0 Then For Each c As DataColumn In ds.Tables(0).Columns Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) @@ -42,7 +42,7 @@ Public Class cBerechtigungen Function checkExist() '(ByVal ip As String) Dim ds As New DataSet - SQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "' AND Standort = '" & Standort & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "' AND Standort = '" & Standort & "'", ds) If ds.Tables(0).Rows.Count > 0 Then MeExist = True Return True @@ -67,7 +67,7 @@ Public Class cBerechtigungen End If Next update = update.Substring(0, update.Length - 1) - SQL.UpdateSQL("TbL_Berechtigungen", update, where) + cSQL.UpdateSQL("TbL_Berechtigungen", update, where) Else Me.ID = Guid.NewGuid().ToString("N") Dim Spalten As String = "" @@ -83,7 +83,7 @@ Public Class cBerechtigungen Spalten = Spalten.Substring(0, Spalten.Length - 1) Werte = Werte.Substring(0, Werte.Length - 1) - SQL.InsertSQL("TbL_Berechtigungen", "(" & Spalten & ") VALUES (" & Werte & ")") + cSQL.InsertSQL("TbL_Berechtigungen", "(" & Spalten & ") VALUES (" & Werte & ")") MeExist = True End If End Function @@ -92,7 +92,7 @@ Public Class cBerechtigungen Try Dim ToR As New List(Of cBerechtigungen) ' ToR -> Table of Rights *Badum Tss* Dim ds As New DataSet - SQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzeranmeldename & "'", ds) If ds.Tables(0).Rows.Count > 0 Then For Each row As DataRow In ds.Tables(0).Rows Dim R As New cBerechtigungen @@ -111,7 +111,7 @@ Public Class cBerechtigungen Public Shared Function BenutzerBerechtigungfuerStandort(ByVal Benutzer As String, ByVal Standort As String) Dim ds As New DataSet - SQL.SQL2DS("SELECT ZUGRIFF FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzer & "' AND Standort = '" & Standort & "'", ds) + cSQL.SQL2DS("SELECT ZUGRIFF FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzer & "' AND Standort = '" & Standort & "'", ds) If ds.Tables(0).Rows.Count > 0 Then Return ds.Tables(0).Rows(0).Item(0).ToString Else @@ -122,7 +122,7 @@ Public Class cBerechtigungen Public Shared Function BenutzerBerechtigungfuerID(ByVal Benutzer As String, ByVal ID As String) Dim ds As New DataSet - SQL.SQL2DS("SELECT ZUGRIFF FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzer & "' AND ID = '" & ID & "'", ds) + cSQL.SQL2DS("SELECT ZUGRIFF FROM TbL_Berechtigungen WHERE BENUTZERANMELDENAME = '" & Benutzer & "' AND ID = '" & ID & "'", ds) If ds.Tables(0).Rows.Count > 0 Then Return ds.Tables(0).Rows(0).Item(0).ToString Else diff --git a/Dokumentation/Classes/cEintrag.vb b/Dokumentation/Classes/cEintrag.vb index 9902b02..42991de 100644 --- a/Dokumentation/Classes/cEintrag.vb +++ b/Dokumentation/Classes/cEintrag.vb @@ -33,7 +33,7 @@ Public Class cEintrag Dim ds As New DataSet Dim test As String = "" Try - SQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE ID = '" & Me.ID & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE ID = '" & Me.ID & "'", ds) If ds.Tables(0).Rows.Count > 0 Then For Each c As DataColumn In ds.Tables(0).Columns Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) @@ -45,7 +45,7 @@ Public Class cEintrag Next Else ds.Clear() - SQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'", ds) For Each c As DataColumn In ds.Tables(0).Columns Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) If propInfo IsNot Nothing Then @@ -78,7 +78,7 @@ Public Class cEintrag Spalten = Spalten.Substring(0, Spalten.Length - 1) Werte = Werte.Substring(0, Werte.Length - 1) - SQL.InsertSQL("TbL_Allgemein", "(" & Spalten & ") VALUES (" & Werte & ")") + cSQL.InsertSQL("TbL_Allgemein", "(" & Spalten & ") VALUES (" & Werte & ")") ElseIf checkExist() And NewID = True Then ''----------------------------------------bestehender Eintrag ohne ID Dim UpdateString As String = "" Dim WhereString As String = "" @@ -90,7 +90,7 @@ Public Class cEintrag Next UpdateString = UpdateString.Substring(0, UpdateString.Length - 1) 'wg. ',' - SQL.UpdateSQL("TbL_Allgemein", UpdateString, "Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'") + cSQL.UpdateSQL("TbL_Allgemein", UpdateString, "Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'") NewID = False ElseIf checkExist() And NewID = False Then ''----------------------------------------bestehender Eintrag mit bestehender ID Dim UpdateString As String = "" @@ -103,19 +103,19 @@ Public Class cEintrag Next UpdateString = UpdateString.Substring(0, UpdateString.Length - 1) 'wg. ',' - SQL.UpdateSQL("TbL_Allgemein", UpdateString, "ID = '" & ID & "'") + cSQL.UpdateSQL("TbL_Allgemein", UpdateString, "ID = '" & ID & "'") End If End Function Function checkExist() '(ByVal ip As String) Dim ds As New DataSet - SQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE ID = '" & Me.ID & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE ID = '" & Me.ID & "'", ds) If ds.Tables(0).Rows.Count > 0 Then Return True Else ds.Clear() - SQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Allgemein WHERE Rubrik = '" & rubrik & "' AND Titel = '" & Titel & "'", ds) If ds.Tables(0).Rows.Count > 0 Then Return True Else diff --git a/Dokumentation/Classes/cFirewallEntry.vb b/Dokumentation/Classes/cFirewallEntry.vb index e3fb28d..7655fed 100644 --- a/Dokumentation/Classes/cFirewallEntry.vb +++ b/Dokumentation/Classes/cFirewallEntry.vb @@ -46,7 +46,7 @@ Public Class cFirewallEntry From [Doku].[dbo].[TbL_FirewallRules] where [fwr_hostip] = '" & HostIP & "' ORDER BY [fwr_in]" - SQL.SQL2DS(selector, ds) + cSQL.SQL2DS(selector, ds) End Function @@ -86,13 +86,13 @@ ORDER BY [fwr_in]" Public Function insertFirewallEntry(ByRef entry As cFirewallEntry) Dim insert As String getInsertCmd(insert) - SQL.InsertSQL("TbL_FirewallRules", insert) + cSQL.InsertSQL("TbL_FirewallRules", insert) End Function Public Function updateFirewallEntry(ByRef entry As cFirewallEntry) Dim update, where As String getUpdateCmd(update, where) - SQL.UpdateSQL("TbL_FirewallRules", update, where) + cSQL.UpdateSQL("TbL_FirewallRules", update, where) 'MsgBox(update & where) End Function diff --git a/Dokumentation/Classes/cHost.vb b/Dokumentation/Classes/cHost.vb index ebee195..9e7d95a 100644 --- a/Dokumentation/Classes/cHost.vb +++ b/Dokumentation/Classes/cHost.vb @@ -119,14 +119,14 @@ Public Class cHost From [Doku].[dbo].[TbL_FirewallRules] where [fwr_hostip] = '" & HostIP & "' ORDER BY [fwr_in]" - SQL.SQL2DS(selector, ds) + cSQL.SQL2DS(selector, ds) End Function Public Function gethost(ip As String) Dim ds As New DataSet Dim test As String = "" - SQL.SQL2DS("select * from TbL_Netzwerkclients where IPAdresse = '" & ip & "'", ds) + cSQL.SQL2DS("select * from TbL_Netzwerkclients where IPAdresse = '" & ip & "'", ds) For Each c As DataColumn In ds.Tables(0).Columns Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) If propInfo IsNot Nothing Then @@ -194,15 +194,15 @@ ORDER BY [fwr_in]" Public Function updateHostEntry(ByRef entry As cHost) Dim update, where, slaveupdate, slavewhere As String getUpdateCmd(update, where, slaveupdate, slavewhere, Me.Linked) - SQL.UpdateSQL("TbL_Netzwerkclients", update, where) - SQL.UpdateSQL("TbL_Netzwerkclients", slaveupdate, slavewhere) + cSQL.UpdateSQL("TbL_Netzwerkclients", update, where) + cSQL.UpdateSQL("TbL_Netzwerkclients", slaveupdate, slavewhere) 'MsgBox(update & where) End Function Function checkIfIPExist(ByVal ip As String) Dim ds As New DataSet - SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE IPADRESSE = '" & ip & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE IPADRESSE = '" & ip & "'", ds) If ds.Tables(0).Rows.Count > 0 Then Return True Else @@ -215,7 +215,7 @@ ORDER BY [fwr_in]" If MessageBox.Show("Eintrag " & Me.FQDN & " wirklich löschen?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then Dim ds As New DataSet Dim Slaves As String = "" - SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & Me.IPAdresse & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & Me.IPAdresse & "'", ds) If ds.Tables(0).Rows.Count > 0 Then For Each r As DataRow In ds.Tables(0).Rows @@ -225,18 +225,18 @@ ORDER BY [fwr_in]" If MessageBox.Show(" Achtung! " & vbCrLf & "Der Eintrag " & Me.FQDN & " ist ein MasterEintrag für die IP Adressen " & vbCrLf & Slaves & " Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then - SQL.DeleteSQL("TbL_Netzwerkclients", "LinkedWith = '" & Me.IPAdresse & "'") + cSQL.DeleteSQL("TbL_Netzwerkclients", "LinkedWith = '" & Me.IPAdresse & "'") ElseIf DialogResult.Cancel Then Exit Function End If End If - SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") + cSQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") Class1.RefillNW(Me.Netzwerk) ElseIf DialogResult.Cancel Then Exit Function End If Else - SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") + cSQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") Class1.RefillNW(Me.Netzwerk) End If @@ -251,7 +251,7 @@ Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen" 'Get Slaves of LinkedMaster Dim ds As New DataSet - SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith = '" & Me.IPAdresse & "'", ds) + cSQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith = '" & Me.IPAdresse & "'", ds) 'Ziel prüfen und gegebenenfalls anzeigen If ( @@ -269,7 +269,7 @@ Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen" 'If Host = LinkedMaster then Update Slaves If ds.Tables(0).Rows.Count > 0 Then - SQL.UpdateSQL("TbL_Netzwerkclients", "LinkedWith = '" & newip & "'", "LinkedWith = '" & oldip & "'") + cSQL.UpdateSQL("TbL_Netzwerkclients", "LinkedWith = '" & newip & "'", "LinkedWith = '" & oldip & "'") End If newhost.FQDN = Me.FQDN @@ -291,7 +291,7 @@ Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen" Dim update, where As String getUpdateCmd(update, where, "", "", newhost.Linked, newhost) - SQL.UpdateSQL("TbL_Netzwerkclients", update, where) + cSQL.UpdateSQL("TbL_Netzwerkclients", update, where) cFolder.FolderMove(Me.NWSTANDORT & "_" & Me.NETNAME, Me.HOST, newhost.NWSTANDORT & "_" & newhost.NETNAME, newhost.HOST) @@ -302,7 +302,7 @@ Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen" Public Shared Function getSlaves(ByVal ip As String, ByRef ds As DataSet) - SQL.SQL2DS("SELECT IPAdresse , (NWSTANDORT + ' ' + NETNAME) as Netzwerk FROM TbL_Netzwerkclients WHERE LinkedWith = '" & ip & "'", ds) + cSQL.SQL2DS("SELECT IPAdresse , (NWSTANDORT + ' ' + NETNAME) as Netzwerk FROM TbL_Netzwerkclients WHERE LinkedWith = '" & ip & "'", ds) End Function diff --git a/Dokumentation/Classes/cNetzwerk.vb b/Dokumentation/Classes/cNetzwerk.vb index 3c3e4b2..e2301eb 100644 --- a/Dokumentation/Classes/cNetzwerk.vb +++ b/Dokumentation/Classes/cNetzwerk.vb @@ -42,7 +42,7 @@ Public Class cNetzwerk Public Function getNetzwerk(nwstandort_ As String, netname_ As String) Dim ds As New DataSet ' Dim test As String = "" - SQL.SQL2DS("select * from TbL_Netzwerke where Netzwerkname = '" & nwstandort_ & "_" & netname_ & "'", ds) + cSQL.SQL2DS("select * from TbL_Netzwerke where Netzwerkname = '" & nwstandort_ & "_" & netname_ & "'", ds) For Each c As DataColumn In ds.Tables(0).Columns Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) If propInfo IsNot Nothing Then diff --git a/Dokumentation/Classes/SQL.vb b/Dokumentation/Classes/cSQL.vb similarity index 99% rename from Dokumentation/Classes/SQL.vb rename to Dokumentation/Classes/cSQL.vb index 1f7f98c..6bd027a 100644 --- a/Dokumentation/Classes/SQL.vb +++ b/Dokumentation/Classes/cSQL.vb @@ -1,6 +1,6 @@ Imports System.Data.SqlClient -Public Class SQL +Public Class cSQL Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet) Dim con As New SqlConnection diff --git a/Dokumentation/Classes/cTSUser.vb b/Dokumentation/Classes/cTSUser.vb new file mode 100644 index 0000000..4cffad9 --- /dev/null +++ b/Dokumentation/Classes/cTSUser.vb @@ -0,0 +1,17 @@ +Public Class cTSUser + + Property BenutzerAnmeldeName As String = "" + Property Name As String = "" + Property TeamviewerID As Integer = Nothing + Property LastLogonTime As DateTime = Nothing + Property LastReport As DateTime = Nothing + Property TSServer As String = "" + Property NameKurz As String = "" + + + Public Function genNameKurz() + Dim i As Integer = Me.BenutzerAnmeldeName.IndexOf("\") + Me.NameKurz = Me.BenutzerAnmeldeName.Substring(i + 1, Me.BenutzerAnmeldeName.Length - (i + 1)) + End Function + +End Class diff --git a/Dokumentation/Dokumentation.vbproj b/Dokumentation/Dokumentation.vbproj index 8dc0cd4..3d83cf7 100644 --- a/Dokumentation/Dokumentation.vbproj +++ b/Dokumentation/Dokumentation.vbproj @@ -155,12 +155,19 @@ + frmAllgemeinEintrag.vb Form + + uscntr_TSSitzungen.vb + + + UserControl + uscntr_FunktionAdmin.vb @@ -181,7 +188,7 @@ - + frmPrint.vb @@ -301,6 +308,12 @@ UserControl + + uscntr_SendMSG.vb + + + UserControl + uscntr_Slaves.vb @@ -313,6 +326,12 @@ UserControl + + uscntr_TSServer.vb + + + UserControl + @@ -330,6 +349,9 @@ frmAllgemeinEintrag.vb + + uscntr_TSSitzungen.vb + uscntr_FunktionAdmin.vb @@ -394,9 +416,15 @@ uscntr_INFO.vb + + uscntr_SendMSG.vb + uscntr_Slaves.vb + + uscntr_TSServer.vb + @@ -420,9 +448,12 @@ + + + diff --git a/Dokumentation/Login/Login.vb b/Dokumentation/Login/Login.vb index afa12a2..5347a03 100644 --- a/Dokumentation/Login/Login.vb +++ b/Dokumentation/Login/Login.vb @@ -207,10 +207,12 @@ Public Class Login Class1.LoggedOnUserisAdmin = True main.BenutzerToolStripMenuItem.Enabled = True main.NetzwerkeToolStripMenuItem.Enabled = True + main.AllesSichernCSVToolStripMenuItem.Enabled = True Exit For Else main.BenutzerToolStripMenuItem.Enabled = False main.NetzwerkeToolStripMenuItem.Enabled = False + main.AllesSichernCSVToolStripMenuItem.Enabled = False End If Next diff --git a/Dokumentation/Main.Designer.vb b/Dokumentation/Main.Designer.vb index 840f3a0..2e49429 100644 --- a/Dokumentation/Main.Designer.vb +++ b/Dokumentation/Main.Designer.vb @@ -50,12 +50,14 @@ Partial Class Main Me.ExportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ImportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.BenutzerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AllesSichernCSVToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() Me.UpdateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ExitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItemINFO = New System.Windows.Forms.ToolStripMenuItem() Me.Panel3 = New System.Windows.Forms.Panel() + Me.chkTSSitzungen = New System.Windows.Forms.CheckBox() Me.lblCount = New System.Windows.Forms.Label() Me.btnNeu = New System.Windows.Forms.Button() Me.ChkDHCPClients = New System.Windows.Forms.CheckBox() @@ -90,8 +92,9 @@ Partial Class Main Me.ToolsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.PuttyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.PingToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.PingtToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.PanTools = New System.Windows.Forms.Panel() + Me.CmdPintT = New System.Windows.Forms.Button() Me.btnTest3 = New System.Windows.Forms.Button() Me.LblDebugInfo = New System.Windows.Forms.Label() Me.CmdPing = New System.Windows.Forms.Button() @@ -99,6 +102,7 @@ Partial Class Main Me.TimerUhrzeit = New System.Windows.Forms.Timer(Me.components) Me.TimerUpdate = New System.Windows.Forms.Timer(Me.components) Me.TimerWillkommen = New System.Windows.Forms.Timer(Me.components) + Me.panTSSitzungen = New System.Windows.Forms.Panel() Me.Panel2.SuspendLayout() Me.Panel4.SuspendLayout() Me.PanType.SuspendLayout() @@ -122,7 +126,7 @@ Partial Class Main Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top Me.Panel2.Location = New System.Drawing.Point(0, 0) Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(1477, 130) + Me.Panel2.Size = New System.Drawing.Size(1581, 130) Me.Panel2.TabIndex = 1 ' 'Panel4 @@ -141,7 +145,7 @@ Partial Class Main Me.Panel4.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel4.Location = New System.Drawing.Point(272, 24) Me.Panel4.Name = "Panel4" - Me.Panel4.Size = New System.Drawing.Size(1205, 106) + Me.Panel4.Size = New System.Drawing.Size(1309, 106) Me.Panel4.TabIndex = 14 ' 'LblDEBUGMODE @@ -159,7 +163,7 @@ Partial Class Main ' Me.LblVersion.Anchor = System.Windows.Forms.AnchorStyles.Right Me.LblVersion.AutoSize = True - Me.LblVersion.Location = New System.Drawing.Point(858, 81) + Me.LblVersion.Location = New System.Drawing.Point(962, 81) Me.LblVersion.Name = "LblVersion" Me.LblVersion.Size = New System.Drawing.Size(42, 13) Me.LblVersion.TabIndex = 17 @@ -180,7 +184,7 @@ Partial Class Main Me.CmdSucheReset.BackColor = System.Drawing.SystemColors.ControlLightLight Me.CmdSucheReset.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) Me.CmdSucheReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.CmdSucheReset.Location = New System.Drawing.Point(709, 71) + Me.CmdSucheReset.Location = New System.Drawing.Point(813, 71) Me.CmdSucheReset.Name = "CmdSucheReset" Me.CmdSucheReset.Size = New System.Drawing.Size(121, 23) Me.CmdSucheReset.TabIndex = 15 @@ -191,7 +195,7 @@ Partial Class Main ' Me.TxtSuche.Anchor = System.Windows.Forms.AnchorStyles.Right Me.TxtSuche.BackColor = System.Drawing.SystemColors.ControlLightLight - Me.TxtSuche.Location = New System.Drawing.Point(523, 23) + Me.TxtSuche.Location = New System.Drawing.Point(627, 23) Me.TxtSuche.Name = "TxtSuche" Me.TxtSuche.Size = New System.Drawing.Size(138, 20) Me.TxtSuche.TabIndex = 3 @@ -200,9 +204,10 @@ Partial Class Main ' Me.Label1.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(476, 26) + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(580, 26) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(41, 13) + Me.Label1.Size = New System.Drawing.Size(47, 13) Me.Label1.TabIndex = 4 Me.Label1.Text = "Suche:" ' @@ -211,7 +216,7 @@ Partial Class Main Me.PanType.Anchor = System.Windows.Forms.AnchorStyles.Right Me.PanType.Controls.Add(Me.LstType) Me.PanType.Controls.Add(Me.Label2) - Me.PanType.Location = New System.Drawing.Point(667, 5) + Me.PanType.Location = New System.Drawing.Point(771, 5) Me.PanType.Name = "PanType" Me.PanType.Size = New System.Drawing.Size(183, 41) Me.PanType.TabIndex = 12 @@ -228,9 +233,10 @@ Partial Class Main 'Label2 ' Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(11, 21) + Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(3, 21) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(34, 13) + Me.Label2.Size = New System.Drawing.Size(39, 13) Me.Label2.TabIndex = 9 Me.Label2.Text = "Type:" ' @@ -238,7 +244,7 @@ Partial Class Main ' Me.PictureBox1.Anchor = System.Windows.Forms.AnchorStyles.Right Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(861, 2) + Me.PictureBox1.Location = New System.Drawing.Point(965, 2) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(333, 67) Me.PictureBox1.TabIndex = 1 @@ -250,7 +256,7 @@ Partial Class Main Me.PanSuche.Controls.Add(Me.RadGlobal) Me.PanSuche.Controls.Add(Me.RadNurNetzwerk) Me.PanSuche.Controls.Add(Me.RadStandort) - Me.PanSuche.Location = New System.Drawing.Point(523, 49) + Me.PanSuche.Location = New System.Drawing.Point(627, 49) Me.PanSuche.Name = "PanSuche" Me.PanSuche.Size = New System.Drawing.Size(314, 31) Me.PanSuche.TabIndex = 11 @@ -290,7 +296,7 @@ Partial Class Main 'LblUhrzeit ' Me.LblUhrzeit.Anchor = System.Windows.Forms.AnchorStyles.Left - Me.LblUhrzeit.Location = New System.Drawing.Point(946, 81) + Me.LblUhrzeit.Location = New System.Drawing.Point(1051, 81) Me.LblUhrzeit.Name = "LblUhrzeit" Me.LblUhrzeit.Size = New System.Drawing.Size(235, 13) Me.LblUhrzeit.TabIndex = 7 @@ -322,13 +328,13 @@ Partial Class Main Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem1, Me.ToolStripMenuItem2, Me.ToolStripMenuItemINFO}) Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(1477, 24) + Me.MenuStrip1.Size = New System.Drawing.Size(1581, 24) Me.MenuStrip1.TabIndex = 2 Me.MenuStrip1.Text = "MenuStrip1" ' 'ToolStripMenuItem1 ' - Me.ToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NetzwerkeToolStripMenuItem, Me.AnsichtDruckenToolStripMenuItem, Me.ExportToolStripMenuItem, Me.ImportToolStripMenuItem, Me.BenutzerToolStripMenuItem, Me.ToolStripSeparator1, Me.UpdateToolStripMenuItem, Me.ExitToolStripMenuItem}) + Me.ToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NetzwerkeToolStripMenuItem, Me.AnsichtDruckenToolStripMenuItem, Me.ExportToolStripMenuItem, Me.ImportToolStripMenuItem, Me.BenutzerToolStripMenuItem, Me.AllesSichernCSVToolStripMenuItem, Me.ToolStripSeparator1, Me.UpdateToolStripMenuItem, Me.ExitToolStripMenuItem}) Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" Me.ToolStripMenuItem1.Size = New System.Drawing.Size(50, 20) Me.ToolStripMenuItem1.Text = "Extras" @@ -363,6 +369,12 @@ Partial Class Main Me.BenutzerToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.BenutzerToolStripMenuItem.Text = "Benutzer" ' + 'AllesSichernCSVToolStripMenuItem + ' + Me.AllesSichernCSVToolStripMenuItem.Name = "AllesSichernCSVToolStripMenuItem" + Me.AllesSichernCSVToolStripMenuItem.Size = New System.Drawing.Size(176, 22) + Me.AllesSichernCSVToolStripMenuItem.Text = "Alles Sichern (CSV)" + ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" @@ -395,6 +407,7 @@ Partial Class Main 'Panel3 ' Me.Panel3.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel3.Controls.Add(Me.chkTSSitzungen) Me.Panel3.Controls.Add(Me.lblCount) Me.Panel3.Controls.Add(Me.btnNeu) Me.Panel3.Controls.Add(Me.ChkDHCPClients) @@ -412,13 +425,23 @@ Partial Class Main Me.Panel3.Dock = System.Windows.Forms.DockStyle.Left Me.Panel3.Location = New System.Drawing.Point(0, 130) Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(200, 771) + Me.Panel3.Size = New System.Drawing.Size(200, 790) Me.Panel3.TabIndex = 2 ' + 'chkTSSitzungen + ' + Me.chkTSSitzungen.AutoSize = True + Me.chkTSSitzungen.Location = New System.Drawing.Point(25, 680) + Me.chkTSSitzungen.Name = "chkTSSitzungen" + Me.chkTSSitzungen.Size = New System.Drawing.Size(157, 17) + Me.chkTSSitzungen.TabIndex = 19 + Me.chkTSSitzungen.Text = "Terminalsitzungen anzeigen" + Me.chkTSSitzungen.UseVisualStyleBackColor = True + ' 'lblCount ' Me.lblCount.AutoSize = True - Me.lblCount.Location = New System.Drawing.Point(13, 746) + Me.lblCount.Location = New System.Drawing.Point(12, 768) Me.lblCount.Name = "lblCount" Me.lblCount.Size = New System.Drawing.Size(45, 13) Me.lblCount.TabIndex = 18 @@ -443,7 +466,7 @@ Partial Class Main Me.ChkDHCPClients.AutoSize = True Me.ChkDHCPClients.Checked = True Me.ChkDHCPClients.CheckState = System.Windows.Forms.CheckState.Checked - Me.ChkDHCPClients.Location = New System.Drawing.Point(25, 651) + Me.ChkDHCPClients.Location = New System.Drawing.Point(25, 628) Me.ChkDHCPClients.Name = "ChkDHCPClients" Me.ChkDHCPClients.Size = New System.Drawing.Size(136, 17) Me.ChkDHCPClients.TabIndex = 16 @@ -453,7 +476,7 @@ Partial Class Main 'ChkFreieHosts ' Me.ChkFreieHosts.AutoSize = True - Me.ChkFreieHosts.Location = New System.Drawing.Point(25, 628) + Me.ChkFreieHosts.Location = New System.Drawing.Point(25, 605) Me.ChkFreieHosts.Name = "ChkFreieHosts" Me.ChkFreieHosts.Size = New System.Drawing.Size(122, 17) Me.ChkFreieHosts.TabIndex = 15 @@ -465,7 +488,7 @@ Partial Class Main Me.ChkKompAnsicht.AutoSize = True Me.ChkKompAnsicht.Checked = True Me.ChkKompAnsicht.CheckState = System.Windows.Forms.CheckState.Checked - Me.ChkKompAnsicht.Location = New System.Drawing.Point(25, 605) + Me.ChkKompAnsicht.Location = New System.Drawing.Point(25, 582) Me.ChkKompAnsicht.Name = "ChkKompAnsicht" Me.ChkKompAnsicht.Size = New System.Drawing.Size(124, 17) Me.ChkKompAnsicht.TabIndex = 14 @@ -549,7 +572,7 @@ Partial Class Main 'ChkTools ' Me.ChkTools.AutoSize = True - Me.ChkTools.Location = New System.Drawing.Point(25, 709) + Me.ChkTools.Location = New System.Drawing.Point(25, 726) Me.ChkTools.Name = "ChkTools" Me.ChkTools.Size = New System.Drawing.Size(107, 17) Me.ChkTools.TabIndex = 10 @@ -573,7 +596,7 @@ Partial Class Main 'ChKZugangsdaten ' Me.ChKZugangsdaten.AutoSize = True - Me.ChKZugangsdaten.Location = New System.Drawing.Point(25, 687) + Me.ChKZugangsdaten.Location = New System.Drawing.Point(25, 703) Me.ChKZugangsdaten.Name = "ChKZugangsdaten" Me.ChKZugangsdaten.Size = New System.Drawing.Size(141, 17) Me.ChKZugangsdaten.TabIndex = 4 @@ -601,7 +624,7 @@ Partial Class Main 'CMdTest2 ' Me.CMdTest2.Dock = System.Windows.Forms.DockStyle.Right - Me.CMdTest2.Location = New System.Drawing.Point(1202, 0) + Me.CMdTest2.Location = New System.Drawing.Point(941, 0) Me.CMdTest2.Name = "CMdTest2" Me.CMdTest2.Size = New System.Drawing.Size(75, 100) Me.CMdTest2.TabIndex = 3 @@ -611,7 +634,7 @@ Partial Class Main 'CmdTest ' Me.CmdTest.Dock = System.Windows.Forms.DockStyle.Right - Me.CmdTest.Location = New System.Drawing.Point(1127, 0) + Me.CmdTest.Location = New System.Drawing.Point(866, 0) Me.CmdTest.Name = "CmdTest" Me.CmdTest.Size = New System.Drawing.Size(75, 100) Me.CmdTest.TabIndex = 2 @@ -641,7 +664,7 @@ Partial Class Main Me.DgVMain.Name = "DgVMain" Me.DgVMain.ReadOnly = True Me.DgVMain.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.DgVMain.Size = New System.Drawing.Size(1277, 671) + Me.DgVMain.Size = New System.Drawing.Size(1016, 690) Me.DgVMain.TabIndex = 3 ' 'DGVMainContext @@ -710,7 +733,7 @@ Partial Class Main ' 'ToolsToolStripMenuItem ' - Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PuttyToolStripMenuItem, Me.PingToolStripMenuItem, Me.ToolStripSeparator4}) + Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PuttyToolStripMenuItem, Me.PingToolStripMenuItem, Me.PingtToolStripMenuItem}) Me.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem" Me.ToolsToolStripMenuItem.Size = New System.Drawing.Size(229, 22) Me.ToolsToolStripMenuItem.Text = "Tools" @@ -718,23 +741,25 @@ Partial Class Main 'PuttyToolStripMenuItem ' Me.PuttyToolStripMenuItem.Name = "PuttyToolStripMenuItem" - Me.PuttyToolStripMenuItem.Size = New System.Drawing.Size(102, 22) + Me.PuttyToolStripMenuItem.Size = New System.Drawing.Size(110, 22) Me.PuttyToolStripMenuItem.Text = "Putty" ' 'PingToolStripMenuItem ' Me.PingToolStripMenuItem.Name = "PingToolStripMenuItem" - Me.PingToolStripMenuItem.Size = New System.Drawing.Size(102, 22) + Me.PingToolStripMenuItem.Size = New System.Drawing.Size(110, 22) Me.PingToolStripMenuItem.Text = "Ping" ' - 'ToolStripSeparator4 + 'PingtToolStripMenuItem ' - Me.ToolStripSeparator4.Name = "ToolStripSeparator4" - Me.ToolStripSeparator4.Size = New System.Drawing.Size(99, 6) + Me.PingtToolStripMenuItem.Name = "PingtToolStripMenuItem" + Me.PingtToolStripMenuItem.Size = New System.Drawing.Size(110, 22) + Me.PingtToolStripMenuItem.Text = "Ping -t" ' 'PanTools ' Me.PanTools.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.PanTools.Controls.Add(Me.CmdPintT) Me.PanTools.Controls.Add(Me.btnTest3) Me.PanTools.Controls.Add(Me.LblDebugInfo) Me.PanTools.Controls.Add(Me.CmdPing) @@ -742,16 +767,28 @@ Partial Class Main Me.PanTools.Controls.Add(Me.CmdTest) Me.PanTools.Controls.Add(Me.CMdTest2) Me.PanTools.Dock = System.Windows.Forms.DockStyle.Bottom - Me.PanTools.Location = New System.Drawing.Point(200, 801) + Me.PanTools.Location = New System.Drawing.Point(200, 820) Me.PanTools.Name = "PanTools" - Me.PanTools.Size = New System.Drawing.Size(1277, 100) + Me.PanTools.Size = New System.Drawing.Size(1016, 100) Me.PanTools.TabIndex = 4 Me.PanTools.Visible = False ' + 'CmdPintT + ' + Me.CmdPintT.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdPintT.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.CmdPintT.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdPintT.Location = New System.Drawing.Point(183, 36) + Me.CmdPintT.Name = "CmdPintT" + Me.CmdPintT.Size = New System.Drawing.Size(151, 23) + Me.CmdPintT.TabIndex = 14 + Me.CmdPintT.Text = "Ping -t" + Me.CmdPintT.UseVisualStyleBackColor = False + ' 'btnTest3 ' Me.btnTest3.Dock = System.Windows.Forms.DockStyle.Right - Me.btnTest3.Location = New System.Drawing.Point(1052, 0) + Me.btnTest3.Location = New System.Drawing.Point(791, 0) Me.btnTest3.Name = "btnTest3" Me.btnTest3.Size = New System.Drawing.Size(75, 100) Me.btnTest3.TabIndex = 13 @@ -799,13 +836,23 @@ Partial Class Main Me.TimerWillkommen.Enabled = True Me.TimerWillkommen.Interval = 5000 ' + 'panTSSitzungen + ' + Me.panTSSitzungen.Dock = System.Windows.Forms.DockStyle.Right + Me.panTSSitzungen.Location = New System.Drawing.Point(1216, 130) + Me.panTSSitzungen.Name = "panTSSitzungen" + Me.panTSSitzungen.Size = New System.Drawing.Size(365, 790) + Me.panTSSitzungen.TabIndex = 5 + Me.panTSSitzungen.Visible = False + ' 'Main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1477, 901) + Me.ClientSize = New System.Drawing.Size(1581, 920) Me.Controls.Add(Me.DgVMain) Me.Controls.Add(Me.PanTools) + Me.Controls.Add(Me.panTSSitzungen) Me.Controls.Add(Me.Panel3) Me.Controls.Add(Me.Panel2) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) @@ -898,7 +945,6 @@ Partial Class Main Friend WithEvents PuttyToolStripMenuItem As ToolStripMenuItem Friend WithEvents PingToolStripMenuItem As ToolStripMenuItem Friend WithEvents ObjektLöschenToolStripMenuItem As ToolStripMenuItem - Friend WithEvents ToolStripSeparator4 As ToolStripSeparator Friend WithEvents ChkFreieHosts As CheckBox Friend WithEvents ChkDHCPClients As CheckBox Public WithEvents DgVMain As DataGridView @@ -911,4 +957,9 @@ Partial Class Main Friend WithEvents ToolStripMenuItemINFO As ToolStripMenuItem Friend WithEvents SMBToolStripMenuItem As ToolStripMenuItem Friend WithEvents IPAdresseInZwischenablageToolStripMenuItem As ToolStripMenuItem + Friend WithEvents PingtToolStripMenuItem As ToolStripMenuItem + Friend WithEvents CmdPintT As Button + Friend WithEvents AllesSichernCSVToolStripMenuItem As ToolStripMenuItem + Friend WithEvents panTSSitzungen As Panel + Friend WithEvents chkTSSitzungen As CheckBox End Class diff --git a/Dokumentation/Main.vb b/Dokumentation/Main.vb index 0130041..b4a6766 100644 --- a/Dokumentation/Main.vb +++ b/Dokumentation/Main.vb @@ -72,6 +72,8 @@ Public Class Main TypeFilter() ChkTools.Checked = Class1.DebugMode + chkTSSitzungen.Checked = True + End Sub ''LISTEN @@ -170,7 +172,7 @@ Public Class Main LstStandort.Items.Clear() : Class1.Standorte.Clear() : Class1.AlleStandorte.Clear() - SQL.SQL2DS("SELECT NWSTANDORT from TbL_Netzwerke where main='True' order by NWSTANDORT", ds) + cSQL.SQL2DS("SELECT NWSTANDORT from TbL_Netzwerke where main='True' order by NWSTANDORT", ds) Try For Each dr As DataRow In ds.Tables(0).Rows Dim b As New cBerechtigungen @@ -200,7 +202,7 @@ Public Class Main Dim dsa As New DataSet() - SQL.SQL2DS("select distinct Rubrik from tbl_allgemein", dsa) + cSQL.SQL2DS("select distinct Rubrik from tbl_allgemein", dsa) LstAllgemein.Items.Clear() Try @@ -249,7 +251,7 @@ Public Class Main Dim ds As New DataSet() Dim Standort As String = LstStandort.SelectedItem - SQL.SQL2DS("select NETNAME from TbL_Netzwerke where NWSTANDORT='" & Standort & "' ORDER BY NETNAME", ds) + cSQL.SQL2DS("select NETNAME from TbL_Netzwerke where NWSTANDORT='" & Standort & "' ORDER BY NETNAME", ds) LstNetzwerk.Items.Clear() Try @@ -312,16 +314,16 @@ Public Class Main If tabelle = "TbL_Netzwerkclients" Then If ChkFreieHosts.Checked Then - SQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' order by host", ds) + cSQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' order by host", ds) dgvfill(ds, "Netzwerk") Else - SQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' AND FQDN is not NUll order by host", ds) + cSQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' AND FQDN is not NUll order by host", ds) dgvfill(ds, "Netzwerk") End If ElseIf tabelle = "TbL_Allgemein" Then 'SQL.SQL2DS("select * from " & tabelle & " WHERE Rubrik = '" & LstAllgemein.SelectedItem & "'", ds) - SQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "')", ds) + cSQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "')", ds) dgvfill(ds, "Allgemein") End If @@ -390,13 +392,13 @@ Public Class Main '''ABFRAGE RADIOBUTTONS + SUCHPARAMETER''' If RadGlobal.Checked Then - SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where " & Suchparameter & " order by host", ds) + cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where " & Suchparameter & " order by host", ds) ElseIf RadNurNetzwerk.Checked Then - SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "' AND " & Suchparameter & " order by host", ds) + cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "' AND " & Suchparameter & " order by host", ds) ElseIf RadStandort.Checked Then - SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND " & Suchparameter & " order by host", ds) + cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND " & Suchparameter & " order by host", ds) ElseIf suchbegriff = "" Then - SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients order by host", ds) + cSQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients order by host", ds) End If @@ -447,7 +449,7 @@ Public Class Main 'con.Open() 'dataadapter.Fill(ds) 'con.Close() - SQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "') AND " & Suchparameter & "", ds) + cSQL.SQL2DS("select * from TbL_Allgemein left join TbL_Berechtigungen on TbL_Allgemein.ID = TbL_Berechtigungen.Standort where ((Benutzeranmeldename = '" & Class1.LoggedOnUser.BenutzeranmeldeName & "' AND not Zugriff = '0') OR (Zugriff is null )) AND (Rubrik = '" & LstAllgemein.SelectedItem & "') AND " & Suchparameter & "", ds) dgvfill(ds, "Allgemein") @@ -907,7 +909,7 @@ Public Class Main 'Dim sda As New SqlDataAdapter("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & SenderIP & "'", con) 'sda.Fill(ds) 'con.Close() - SQL.SQL2DS("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & SenderIP & "'", ds) + cSQL.SQL2DS("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & SenderIP & "'", ds) If IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = "0" @@ -932,7 +934,7 @@ Public Class Main 'da.Fill(dslinked) 'con.Close() - SQL.SQL2DS("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & LinkedWith & "'", dslinked) + cSQL.SQL2DS("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & LinkedWith & "'", dslinked) Select Case art Case "Dateien" Path = Class1.FilePath & "\" & dslinked.Tables(0).Rows(0).Item("NWStandort") & "_" & dslinked.Tables(0).Rows(0).Item("NetName") & "\" & dslinked.Tables(0).Rows(0).Item("Host") @@ -1115,7 +1117,7 @@ Public Class Main LblVersion.Text = "Version: " & Version Try Dim ds As New DataSet - SQL.SQL2DS("SELECT prog_aktuelleVersion FROM ADMIN.dbo.tblProgramme WHERE prog_codename= '" & My.Resources.Programmcode & "'", ds) + cSQL.SQL2DS("SELECT prog_aktuelleVersion FROM ADMIN.dbo.tblProgramme WHERE prog_codename= '" & My.Resources.Programmcode & "'", ds) If ds.Tables(0).Rows.Count Then RemoteVersion = ds.Tables(0).Rows(0).Item(0).ToString End If @@ -1212,7 +1214,11 @@ Public Class Main End Sub Private Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click - cFolder.netuse("Verag", "1VerSub9#", "\\10.4.3.17") + panTSSitzungen.Controls.Clear() + Dim dingsi As New uscntr_TSSitzungen + panTSSitzungen.Controls.Add(dingsi) + + End Sub Private Sub ToolStripMenuItemINFO_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemINFO.Click @@ -1239,6 +1245,36 @@ Public Class Main End If End Sub + Private Sub PingtToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PingtToolStripMenuItem.Click, CmdPintT.Click + Ext_Programme.pingip(DgVMain.CurrentRow.Cells("IPAdresse").Value, " -t") + End Sub + + Private Sub AllesSichernCSVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AllesSichernCSVToolStripMenuItem.Click + Dim dgvtemp As New DataGridView + Dim dstemp As New DataSet + + cSQL.SQL2DS("select * from TbL_Netzwerkclients where FQDN is not null order by NWSTANDORT, NETNAME, host", dstemp) + + dgvtemp.DataSource = dstemp.Tables(0) + + Class1.datatable_2_csv_export(dstemp.Tables(0)) + End Sub + + Private Sub chkTSSitzungen_CheckedChanged(sender As Object, e As EventArgs) Handles chkTSSitzungen.CheckedChanged + If chkTSSitzungen.Checked Then + panTSSitzungen.Controls.Clear() + Dim dingsi As New uscntr_TSSitzungen + dingsi.AutoSize = AutoSizeMode.GrowAndShrink + dingsi.Dock = Dock.Fill + + panTSSitzungen.Controls.Add(dingsi) + panTSSitzungen.Visible = True + Else + panTSSitzungen.Controls.Clear() + panTSSitzungen.Visible = False + End If + End Sub + Private Sub ObjektLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ObjektLöschenToolStripMenuItem.Click If Tabelle = "TbL_Netzwerkclients" Then Dim ds As New DataSet diff --git a/Dokumentation/My Project/Resources.Designer.vb b/Dokumentation/My Project/Resources.Designer.vb index 732c67f..c3a5482 100644 --- a/Dokumentation/My Project/Resources.Designer.vb +++ b/Dokumentation/My Project/Resources.Designer.vb @@ -110,6 +110,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property mail20() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("mail20", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[]. + ''' + Friend ReadOnly Property msg() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("msg", resourceCulture) + Return CType(obj,Byte()) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -169,7 +189,17 @@ Namespace My.Resources End Property ''' - ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.35 ähnelt. + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Update() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Update", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.38 ähnelt. ''' Friend ReadOnly Property Version() As String Get diff --git a/Dokumentation/My Project/Resources.resx b/Dokumentation/My Project/Resources.resx index 3f625ce..4dee1ae 100644 --- a/Dokumentation/My Project/Resources.resx +++ b/Dokumentation/My Project/Resources.resx @@ -117,41 +117,50 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Dokumentation - - - ..\Resources\Link20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Folder20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Bearbeiten20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Link.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - 0.0.1.35 - - - ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Folder20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - DOKU - - - ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Netzwerk20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + 0.0.1.38 ..\Resources\Print20x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Netzwerk20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Dokumentation + + + ..\Resources\Link20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + DOKU + + + ..\Resources\Link.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mail20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\msg.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Dokumentation/Resources/Update.png b/Dokumentation/Resources/Update.png new file mode 100644 index 0000000000000000000000000000000000000000..f5946c776115f134198bd702f4f6448d089806d5 GIT binary patch literal 3269 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 D1hO>f literal 0 HcmV?d00001 diff --git a/Dokumentation/Resources/mail20.png b/Dokumentation/Resources/mail20.png new file mode 100644 index 0000000000000000000000000000000000000000..821ba596b0d8f576b3c7224c403098393f6dfa64 GIT binary patch literal 1722 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 _ +Partial Class uscntr_SendMSG + Inherits System.Windows.Forms.UserControl + + 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.cmdSenden = New System.Windows.Forms.Button() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.PanServerListe = New System.Windows.Forms.Panel() + Me.PanMain = New System.Windows.Forms.Panel() + Me.LabelInfo = New System.Windows.Forms.Label() + Me.cmdVorschau = New System.Windows.Forms.Button() + Me.Panel1.SuspendLayout() + Me.PanMain.SuspendLayout() + Me.SuspendLayout() + ' + 'TextBox1 + ' + Me.TextBox1.Location = New System.Drawing.Point(8, 21) + Me.TextBox1.Margin = New System.Windows.Forms.Padding(8) + Me.TextBox1.Multiline = True + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(444, 71) + Me.TextBox1.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(5, 0) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(56, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Nachricht:" + ' + 'cmdSenden + ' + Me.cmdSenden.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmdSenden.Location = New System.Drawing.Point(383, 173) + Me.cmdSenden.Name = "cmdSenden" + Me.cmdSenden.Size = New System.Drawing.Size(75, 23) + Me.cmdSenden.TabIndex = 2 + Me.cmdSenden.Text = "Senden" + Me.cmdSenden.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.TextBox1) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(461, 108) + Me.Panel1.TabIndex = 3 + ' + 'PanServerListe + ' + Me.PanServerListe.Dock = System.Windows.Forms.DockStyle.Left + Me.PanServerListe.Location = New System.Drawing.Point(0, 108) + Me.PanServerListe.Name = "PanServerListe" + Me.PanServerListe.Size = New System.Drawing.Size(196, 91) + Me.PanServerListe.TabIndex = 0 + ' + 'PanMain + ' + Me.PanMain.AutoSize = True + Me.PanMain.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.PanMain.Controls.Add(Me.LabelInfo) + Me.PanMain.Controls.Add(Me.cmdVorschau) + Me.PanMain.Controls.Add(Me.cmdSenden) + Me.PanMain.Dock = System.Windows.Forms.DockStyle.Fill + Me.PanMain.Location = New System.Drawing.Point(0, 0) + Me.PanMain.MinimumSize = New System.Drawing.Size(461, 199) + Me.PanMain.Name = "PanMain" + Me.PanMain.Size = New System.Drawing.Size(461, 199) + Me.PanMain.TabIndex = 4 + ' + 'LabelInfo + ' + Me.LabelInfo.AutoSize = True + Me.LabelInfo.Location = New System.Drawing.Point(202, 111) + Me.LabelInfo.Name = "LabelInfo" + Me.LabelInfo.Size = New System.Drawing.Size(51, 13) + Me.LabelInfo.TabIndex = 4 + Me.LabelInfo.Text = "LabelInfo" + ' + 'cmdVorschau + ' + Me.cmdVorschau.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmdVorschau.Location = New System.Drawing.Point(205, 173) + Me.cmdVorschau.Name = "cmdVorschau" + Me.cmdVorschau.Size = New System.Drawing.Size(75, 23) + Me.cmdVorschau.TabIndex = 3 + Me.cmdVorschau.Text = "Vorschau" + Me.cmdVorschau.UseVisualStyleBackColor = True + ' + 'uscntr_SendMSG + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.Controls.Add(Me.PanServerListe) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.PanMain) + Me.MinimumSize = New System.Drawing.Size(461, 199) + Me.Name = "uscntr_SendMSG" + Me.Size = New System.Drawing.Size(461, 199) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.PanMain.ResumeLayout(False) + Me.PanMain.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents TextBox1 As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents cmdSenden As Button + Friend WithEvents Panel1 As Panel + Friend WithEvents PanServerListe As Panel + Friend WithEvents PanMain As Panel + Friend WithEvents cmdVorschau As Button + Friend WithEvents LabelInfo As Label +End Class diff --git a/Dokumentation/uscntr_SendMSG.resx b/Dokumentation/uscntr_SendMSG.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/uscntr_SendMSG.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_SendMSG.vb b/Dokumentation/uscntr_SendMSG.vb new file mode 100644 index 0000000..abb4ad9 --- /dev/null +++ b/Dokumentation/uscntr_SendMSG.vb @@ -0,0 +1,85 @@ +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 + + Private Sub uscntr_SendMSG_Load(sender As Object, e As EventArgs) Handles Me.Load + LabelInfo.Text = "" + FillPanWithServer() + SelectUniUser() + End Sub + + Function FillPanWithServer() + PanServerListe.Controls.Clear() + + Dim i As Integer = 0 + + For Each Server As String In Class1.TerminalServerList + Dim usrcntrl As New uscntr_TSServer + usrcntrl.btnServer.Text = Server + usrcntrl.Location = New Point(0, i * usrcntrl.Height) + i = i + 1 + PanServerListe.Controls.Add(usrcntrl) + AddHandler usrcntrl.btnServer.Click, Function() + UpdateSelectedServerList() + End Function + + Next + 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 + 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, "*", recserver(0), 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 + If SingleUserRec = True Then + Ext_Programme.msgsend(msgfin) + Else + For Each srv As String In recserver + Ext_Programme.msgsend(String.Format(msg, "*", srv, TextBox1.Text)) + Next + End If + End If + End Sub +End Class diff --git a/Dokumentation/uscntr_TSServer.Designer.vb b/Dokumentation/uscntr_TSServer.Designer.vb new file mode 100644 index 0000000..9869087 --- /dev/null +++ b/Dokumentation/uscntr_TSServer.Designer.vb @@ -0,0 +1,54 @@ + _ +Partial Class uscntr_TSServer + Inherits System.Windows.Forms.UserControl + + 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.btnServer = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'btnServer + ' + Me.btnServer.BackColor = System.Drawing.Color.Red + Me.btnServer.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnServer.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnServer.Location = New System.Drawing.Point(3, 3) + Me.btnServer.Name = "btnServer" + Me.btnServer.Size = New System.Drawing.Size(148, 24) + Me.btnServer.TabIndex = 3 + Me.btnServer.Text = "btnServer" + Me.btnServer.UseVisualStyleBackColor = False + ' + 'uscntr_TSServer + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.Controls.Add(Me.btnServer) + Me.MinimumSize = New System.Drawing.Size(154, 30) + Me.Name = "uscntr_TSServer" + Me.Size = New System.Drawing.Size(154, 30) + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents btnServer As Button +End Class diff --git a/Dokumentation/uscntr_TSServer.resx b/Dokumentation/uscntr_TSServer.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/uscntr_TSServer.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_TSServer.vb b/Dokumentation/uscntr_TSServer.vb new file mode 100644 index 0000000..fa386ff --- /dev/null +++ b/Dokumentation/uscntr_TSServer.vb @@ -0,0 +1,13 @@ +Public Class uscntr_TSServer + Public selected As Boolean = False + + Private Sub btnServer_Click(sender As Object, e As EventArgs) Handles btnServer.Click + selected = Not selected + If selected Then + btnServer.BackColor = Color.Green + Else + btnServer.BackColor = Color.Red + End If + + End Sub +End Class diff --git a/Dokumentation/uscntr_TSSitzungen.Designer.vb b/Dokumentation/uscntr_TSSitzungen.Designer.vb new file mode 100644 index 0000000..d1fdb0b --- /dev/null +++ b/Dokumentation/uscntr_TSSitzungen.Designer.vb @@ -0,0 +1,233 @@ + _ +Partial Class uscntr_TSSitzungen + Inherits System.Windows.Forms.UserControl + + 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.dgvTSSitzungen = New System.Windows.Forms.DataGridView() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.NachrichtSendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.UpdateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cmdNachricht = New System.Windows.Forms.Button() + Me.chkAutoUpdate = New System.Windows.Forms.CheckBox() + Me.CmdUpdate = New System.Windows.Forms.Button() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.btnReset = New System.Windows.Forms.Button() + Me.lblAnzahl = New System.Windows.Forms.Label() + CType(Me.dgvTSSitzungen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStrip1.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.SuspendLayout() + ' + 'dgvTSSitzungen + ' + Me.dgvTSSitzungen.AllowUserToAddRows = False + Me.dgvTSSitzungen.AllowUserToDeleteRows = False + Me.dgvTSSitzungen.AllowUserToResizeRows = False + Me.dgvTSSitzungen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvTSSitzungen.ContextMenuStrip = Me.ContextMenuStrip1 + Me.dgvTSSitzungen.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvTSSitzungen.Location = New System.Drawing.Point(0, 36) + Me.dgvTSSitzungen.MultiSelect = False + Me.dgvTSSitzungen.Name = "dgvTSSitzungen" + Me.dgvTSSitzungen.ReadOnly = True + Me.dgvTSSitzungen.RowTemplate.ReadOnly = True + Me.dgvTSSitzungen.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvTSSitzungen.Size = New System.Drawing.Size(365, 197) + Me.dgvTSSitzungen.TabIndex = 0 + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NachrichtSendenToolStripMenuItem, Me.UpdateToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(168, 48) + ' + 'NachrichtSendenToolStripMenuItem + ' + Me.NachrichtSendenToolStripMenuItem.Name = "NachrichtSendenToolStripMenuItem" + Me.NachrichtSendenToolStripMenuItem.Size = New System.Drawing.Size(167, 22) + Me.NachrichtSendenToolStripMenuItem.Text = "Nachricht senden" + ' + 'UpdateToolStripMenuItem + ' + Me.UpdateToolStripMenuItem.Name = "UpdateToolStripMenuItem" + Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(167, 22) + Me.UpdateToolStripMenuItem.Text = "Update" + ' + 'Timer1 + ' + Me.Timer1.Interval = 10000 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel1.Controls.Add(Me.lblAnzahl) + Me.Panel1.Controls.Add(Me.cmdNachricht) + Me.Panel1.Controls.Add(Me.chkAutoUpdate) + Me.Panel1.Controls.Add(Me.CmdUpdate) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel1.Location = New System.Drawing.Point(0, 233) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(365, 67) + Me.Panel1.TabIndex = 2 + ' + 'cmdNachricht + ' + Me.cmdNachricht.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmdNachricht.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdNachricht.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.cmdNachricht.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdNachricht.Image = Global.Dokumentation.My.Resources.Resources.mail20 + Me.cmdNachricht.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.cmdNachricht.Location = New System.Drawing.Point(8, 31) + Me.cmdNachricht.Margin = New System.Windows.Forms.Padding(8) + Me.cmdNachricht.Name = "cmdNachricht" + Me.cmdNachricht.Size = New System.Drawing.Size(151, 28) + Me.cmdNachricht.TabIndex = 12 + Me.cmdNachricht.Text = "Nachricht" + Me.cmdNachricht.UseVisualStyleBackColor = False + ' + 'chkAutoUpdate + ' + Me.chkAutoUpdate.AutoSize = True + Me.chkAutoUpdate.Location = New System.Drawing.Point(220, 11) + Me.chkAutoUpdate.Name = "chkAutoUpdate" + Me.chkAutoUpdate.Size = New System.Drawing.Size(127, 17) + Me.chkAutoUpdate.TabIndex = 11 + Me.chkAutoUpdate.Text = "AutoUpdate (10 sec.)" + Me.chkAutoUpdate.UseVisualStyleBackColor = True + ' + 'CmdUpdate + ' + Me.CmdUpdate.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.CmdUpdate.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdUpdate.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.CmdUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdUpdate.Image = Global.Dokumentation.My.Resources.Resources.Update + Me.CmdUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.CmdUpdate.Location = New System.Drawing.Point(206, 31) + Me.CmdUpdate.Margin = New System.Windows.Forms.Padding(8) + Me.CmdUpdate.Name = "CmdUpdate" + Me.CmdUpdate.Size = New System.Drawing.Size(151, 28) + Me.CmdUpdate.TabIndex = 10 + Me.CmdUpdate.Text = "Update" + Me.CmdUpdate.UseVisualStyleBackColor = False + ' + 'Panel2 + ' + Me.Panel2.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel2.Controls.Add(Me.btnReset) + Me.Panel2.Controls.Add(Me.Label1) + Me.Panel2.Controls.Add(Me.TextBox1) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel2.Location = New System.Drawing.Point(0, 0) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(365, 36) + Me.Panel2.TabIndex = 3 + ' + 'TextBox1 + ' + Me.TextBox1.Location = New System.Drawing.Point(103, 8) + Me.TextBox1.Margin = New System.Windows.Forms.Padding(8) + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(157, 20) + Me.TextBox1.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(8, 12) + Me.Label1.Margin = New System.Windows.Forms.Padding(8) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(93, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "TSUser Suche:" + ' + 'btnReset + ' + Me.btnReset.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnReset.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnReset.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.btnReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnReset.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnReset.Location = New System.Drawing.Point(276, 8) + Me.btnReset.Margin = New System.Windows.Forms.Padding(8) + Me.btnReset.Name = "btnReset" + Me.btnReset.Size = New System.Drawing.Size(81, 20) + Me.btnReset.TabIndex = 13 + Me.btnReset.Text = "Reset" + Me.btnReset.UseVisualStyleBackColor = False + ' + 'lblAnzahl + ' + Me.lblAnzahl.AutoSize = True + Me.lblAnzahl.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAnzahl.ForeColor = System.Drawing.SystemColors.WindowFrame + Me.lblAnzahl.Location = New System.Drawing.Point(9, 11) + Me.lblAnzahl.Name = "lblAnzahl" + Me.lblAnzahl.Size = New System.Drawing.Size(43, 12) + Me.lblAnzahl.TabIndex = 13 + Me.lblAnzahl.Text = "lblAnzahl" + ' + 'uscntr_TSSitzungen + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.Controls.Add(Me.dgvTSSitzungen) + Me.Controls.Add(Me.Panel2) + Me.Controls.Add(Me.Panel1) + Me.MinimumSize = New System.Drawing.Size(365, 300) + Me.Name = "uscntr_TSSitzungen" + Me.Size = New System.Drawing.Size(365, 300) + CType(Me.dgvTSSitzungen, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStrip1.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents dgvTSSitzungen As DataGridView + Friend WithEvents Timer1 As Timer + Friend WithEvents Panel1 As Panel + Friend WithEvents CmdUpdate As Button + Friend WithEvents chkAutoUpdate As CheckBox + Friend WithEvents cmdNachricht As Button + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents NachrichtSendenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents UpdateToolStripMenuItem As ToolStripMenuItem + Friend WithEvents Panel2 As Panel + Friend WithEvents Label1 As Label + Friend WithEvents TextBox1 As TextBox + Friend WithEvents btnReset As Button + Friend WithEvents lblAnzahl As Label +End Class diff --git a/Dokumentation/uscntr_TSSitzungen.resx b/Dokumentation/uscntr_TSSitzungen.resx new file mode 100644 index 0000000..bbde99b --- /dev/null +++ b/Dokumentation/uscntr_TSSitzungen.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 106, 17 + + + 17, 17 + + + 44 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_TSSitzungen.vb b/Dokumentation/uscntr_TSSitzungen.vb new file mode 100644 index 0000000..f886772 --- /dev/null +++ b/Dokumentation/uscntr_TSSitzungen.vb @@ -0,0 +1,104 @@ +Public Class uscntr_TSSitzungen + + Private Sub uscntr_TSSitzungen_Load(sender As Object, e As EventArgs) Handles Me.Load + Load2DGV() + End Sub + + Function Load2DGV(Optional ByVal WhereString As String = "") + Dim ds As New DataSet + cSQL.SQL2DS("SELECT * FROM TbL_TSSitzungen WHERE Name LIKE '" & ReturnOfTheWhere() & "' OR TSServer LIKE '" & ReturnOfTheWhere() & "' ORDER BY NAME", ds) + + With dgvTSSitzungen + .RowHeadersVisible = False + .DataSource = ds.Tables(0) + .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells + .Columns("BenutzerAnmeldeName").Visible = False + '.Columns("BenutzerAnmeldeName").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("LastLogon").Visible = False + .Columns("LastLogon").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + '.Columns("LastReport").Width = 85 + '.Columns("TeamviewerID").Width = 80 + '.Columns("TSServer").Width = 60 + End With + lblAnzahl.Text = dgvTSSitzungen.Rows.Count + LoadTSServer() + End Function + + Private Sub dgvTSSitzungen_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTSSitzungen.CellContentDoubleClick + + Dim sitzung As String = Class1.DBNull2emptyString(dgvTSSitzungen.CurrentRow.Cells("TeamviewerID").Value) + StartTeamviewer(sitzung) + + End Sub + + Public Function StartTeamviewer(ID As String) + Dim teamviewer As New Process + With teamviewer.StartInfo + .FileName = "Teamviewer.exe" + .WorkingDirectory = "C:\Program Files (x86)\TeamViewer" + .Arguments = "-i " & ID & " -P BmWr501956" + End With + + teamviewer.Start() + + End Function + + 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.SQL2DS("SELECT DISTINCT TSServer FROM TbL_TSSitzungen", ds) + + For Each r As DataRow In ds.Tables(0).Rows + Class1.TerminalServerList.Add(r.Item(0).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 + 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 + send.Text = "Nachricht senden" + Dim usrcntrl As New uscntr_SendMSG + usrcntrl.recuser.Name = dgvTSSitzungen.CurrentRow.Cells("Name").Value.ToString + usrcntrl.recuser.BenutzerAnmeldeName = dgvTSSitzungen.CurrentRow.Cells("BenutzerAnmeldeName").Value.ToString + usrcntrl.recuser.TSServer = dgvTSSitzungen.CurrentRow.Cells("TSServer").Value.ToString + 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 + + Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click + TextBox1.Text = "" + End Sub +End Class diff --git a/Dokumentation_Updater/Update.Designer.vb b/Dokumentation_Updater/Update.Designer.vb index bd649d6..3fa5cd3 100644 --- a/Dokumentation_Updater/Update.Designer.vb +++ b/Dokumentation_Updater/Update.Designer.vb @@ -68,7 +68,7 @@ Partial Class Update Me.Controls.Add(Me.CmdUpdate) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "Update" - Me.Text = "Doku Update 1.0.1" + Me.Text = "Doku Update 1.0.2" Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Dokumentation_Updater/Update.vb b/Dokumentation_Updater/Update.vb index 92d615d..9e780de 100644 --- a/Dokumentation_Updater/Update.vb +++ b/Dokumentation_Updater/Update.vb @@ -3,7 +3,7 @@ Public Class Update Public sAppPath As String = Application.StartupPath - Public Updatequelle As String = "\\192.168.0.91\f\Programme\Doku\" + Public Updatequelle As String = "\\share01.verag.ost.dmn\Programme\Doku\" Private Sub Update_Load(sender As Object, e As EventArgs) Handles MyBase.Load TxtInfo.Text = "Programmpfad: " & sAppPath & vbCrLf