Imports System.Data.SqlClient Imports System.DirectoryServices.AccountManagement Public Class Main Public con As New SqlConnection Public conadmin As New SqlConnection Public cmd As New SqlCommand Public cmdadmin As New SqlCommand Public reader As SqlDataReader Public SenderStandort As String Public SenderNetzwerk As String Public SenderHost As String Public SenderIP As String Public SenderRubrik As String Public SenderTitel As String Public Neu, geaendert As Boolean Public Suchbegriff As String Public Shared SucheAktiv As Boolean = False Public Tabelle As String Public DHCPRefresh As Boolean = True Public Startparameter As String = "" Public sAppPath As String = Application.StartupPath Public Updatequelle As String = "\\192.168.0.91\f\Programme\Doku\" Private Version As String = My.Resources.Version Public Shared SelectedDGVIndex As Integer Public Shared FirstDisplayedDGVEntry As Integer Public printds As DataSet = Nothing Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load LblUhrzeit.Text = "Willkommen " & Class1.LoggedOnUser.Name Class1.EnableDoubleBuffered(DgVMain) Me.KeyPreview = True 'MsgBox(sAppPath) 'If Class1.DBConString = "Server=DEVELOPER\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Then If Class1.DebugMode = True Then LblDEBUGMODE.Visible = True LblDEBUGMODE.ForeColor = Color.Red LblDEBUGMODE.Text = "DEBUG " TimerUpdate.Enabled = False dbload() LstStandortLoad() LblVersion.Text = "Version: " & Version LblVersion.ForeColor = Color.Red LblUhrzeit.ForeColor = Color.Red Else dbload() CheckUpdate("Programmstart") LstStandortLoad() LblUhrzeit.Text = "" 'ImportToolStripMenuItem.Enabled = False With DgVMain .RowsDefaultCellStyle.BackColor = Color.White 'Color.Bisque .AlternatingRowsDefaultCellStyle.BackColor = ColorTranslator.FromHtml("#d7e4f2") End With End If TypeFilter() ChkTools.Checked = Class1.DebugMode End Sub ''LISTEN Private Sub LstStandort_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstStandort.SelectedIndexChanged SenderStandort = LstStandort.SelectedItem LstAllgemein.ClearSelected() PanSuche.Enabled = True PanType.Enabled = True Tabelle = "TbL_Netzwerkclients" PuttyToolStripMenuItem.Enabled = True LstNetzwerkLoad() LstNetzwerk.SelectedItem = "Intern" ' SenderStandort = LstStandort.SelectedItem End Sub Private Sub LstNetzwerk_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstNetzwerk.SelectedIndexChanged SenderStandort = LstStandort.SelectedItem SenderNetzwerk = LstNetzwerk.SelectedItem Tabelle = "TbL_Netzwerkclients" PanSuche.Enabled = True PanNetzwerk.Visible = True btnNeu.Enabled = False If SenderNetzwerk = "" Then CmdNetzwerkbearbeiten.Enabled = False Else CmdNetzwerkbearbeiten.Enabled = True End If 'dgvload("TbL_Netzwerkclients") dgvload_filter(Suchbegriff) End Sub Private Sub LstAllgemein_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LstAllgemein.SelectedIndexChanged LstNetzwerk.ClearSelected() 'LstStandort.ClearSelected() PanNetzwerk.Visible = False btnNeu.Enabled = True PanSuche.Enabled = False PanType.Enabled = False TxtSuche.Enabled = True Tabelle = "TbL_Allgemein" PuttyToolStripMenuItem.Enabled = False dgvload(Tabelle) End Sub Private Sub ChKZugangsdaten_CheckedChanged(sender As Object, e As EventArgs) Handles ChKZugangsdaten.CheckedChanged dgvload_filter(Suchbegriff) End Sub Public Function allesladen() dgvload_filter(Suchbegriff) 'dgvload(Tabelle) End Function Public Function werbinich() If Tabelle = "TbL_Netzwerkclients" Then Try SenderStandort = DgVMain.CurrentRow.Cells("NWSTANDORT").Value Catch ex As Exception SenderStandort = LstStandort.SelectedItem End Try Try SenderNetzwerk = DgVMain.CurrentRow.Cells("NETNAME").Value Catch ex As Exception SenderNetzwerk = LstNetzwerk.SelectedItem End Try Try SenderHost = DgVMain.CurrentRow.Cells("HOST").Value Catch Ex As Exception SenderHost = 1 End Try Try SenderIP = DgVMain.CurrentRow.Cells("IPAdresse").Value Catch ex As Exception End Try ElseIf Tabelle = "TbL_Allgemein" Then Try SenderRubrik = DgVMain.CurrentRow.Cells("Rubrik").Value SenderTitel = DgVMain.CurrentRow.Cells("Titel").Value Catch ex As Exception End Try End If End Function Public Function LstStandortLoad() Dim ds As New DataSet() LstStandort.Items.Clear() : Class1.Standorte.Clear() : Class1.AlleStandorte.Clear() SQL.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 b.Benutzeranmeldename = Class1.LoggedOnUser.BenutzeranmeldeName : b.Standort = dr.Item(0) b.getFromSQL() Class1.AlleStandorte.Add(dr.Item(0)) Select Case b.Zugriff Case "0" Case Else LstStandort.Items.Add(dr.Item(0)) Class1.Standorte.Add(dr.Item(0)) End Select Next Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try 'MsgBox(LstStandort.Items.Count) If Class1.LoggedOnUser.Domäne = "verag.ost.dmn" Then LstStandort.SelectedItem = "Verag_SUB" ' MsgBox("Hier") Else LstStandort.SelectedIndex = 0 'MsgBox("Dort") End If Dim dsa As New DataSet() SQL.SQL2DS("select distinct Rubrik from tbl_allgemein", dsa) LstAllgemein.Items.Clear() Try For Each dr As DataRow In dsa.Tables(0).Rows LstAllgemein.Items.Add(dr.Item(0)) Next Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try End Function Public Function TypeFilter() Try Dim ds As New DataSet() Dim dt As New DataTable() dbload() Dim dataadapter As New SqlDataAdapter("SELECT DISTINCT TYPE from TbL_Netzwerkclients WHERE TYPE IS NOT NULL", con) LstType.Items.Clear() Try con.Open() dataadapter.Fill(ds) LstType.Items.Add("") For Each dr As DataRow In ds.Tables(0).Rows If dr.Item(0) = "" Then LstType.Items.Add("ohne") Else LstType.Items.Add(dr.Item(0)) End If Next Catch ex As Exception MsgBox("TypeFilter(): " & ex.Message) End Try ' LstType.SelectedItem = "---" con.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Function Public Function LstNetzwerkLoad() 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) LstNetzwerk.Items.Clear() Try For Each dr As DataRow In ds.Tables(0).Rows LstNetzwerk.Items.Add(dr.Item(0)) Next Catch ex As Exception 'MsgBox("DataadapterFill LstNwerkload(): " & ex.Message) End Try LstNetzwerk.SelectedItem = "Intern" Try ' LstNetzwerk.SetSelected(0, True) NetzwerkInfoAnzeige() Catch ex As Exception ' MsgBox("LstNetzwerkLoad SetSelected: " & ex.Message) End Try NetzwerkInfoAnzeige() End Function Public Function NetzwerkInfoAnzeige() Dim netzwerkname As String = SenderStandort & "_" & SenderNetzwerk LblNetzwerkinfo.Text = "" Try con.Open() cmd.CommandText = "SELECT * FROM Tbl_Netzwerke WHERE Netzwerkname='" & netzwerkname & "'" reader = cmd.ExecuteReader() Do While reader.Read() LblNetzwerkinfo.Text = "Netzwerk: " & reader("Netzwerk") & " Subnetz: " & reader("Subnetz") & vbCrLf & "Gateway: " & reader("Gateway") & vbCrLf & "DNS Server: " & reader("DNSServer") & vbCrLf If Class1.ReadNullAsEmptyString(reader, "DHCPServer") = "" Then Else LblNetzwerkinfo.Text &= "DHCP Server: " & reader("DHCPServer") & vbCrLf & "Bereich: " & reader("DHCPStart") & "-" & reader("DHCPEnd") & vbCrLf & reader("Info") End If Loop reader.Close() Catch ex As Exception 'MsgBox("LblNetzwerkinfo Reader: " & ex.Message) End Try con.Close() End Function Public Function dbload() con.ConnectionString = Class1.DBConString conadmin.ConnectionString = Class1.DBConString cmd.Connection = con cmdadmin.Connection = conadmin End Function Public Function dgvload(tabelle As String) Dim ds As New DataSet() Dim Standort As String = LstStandort.SelectedItem Dim Netzwerk As String = LstNetzwerk.SelectedItem Try If tabelle = "TbL_Netzwerkclients" Then If ChkFreieHosts.Checked Then SQL.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) 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) dgvfill(ds, "Allgemein") End If Catch ex As Exception 'MsgBox("DataadapterFill dgvload(): " & ex.Message) End Try NetzwerkInfoAnzeige() End Function Public Function dgvload_filter(suchbegriff As String, Optional ByVal DHCPRefresh As Boolean = True) Dim starttime As Date = DateTime.Now Dim endtime As Date Dim ds As New DataSet() Dim dt As New DataTable() Dim Standort As String = LstStandort.SelectedItem Dim Netzwerk As String = LstNetzwerk.SelectedItem Dim Allgemein As String = LstAllgemein.SelectedItem Dim Suchparameter As String Dim DHCPAbfragen As Boolean If LstNetzwerk.SelectedItem Is Nothing And LstAllgemein.SelectedItem Is Nothing Then Exit Function ElseIf LstNetzwerk.SelectedItem IsNot Nothing Then '''SUCHPARAMETER DEFINIEREN''' If LstType.SelectedItem = "" Then Suchparameter = "(Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & " 'OR Standort LIKE'" & suchbegriff & "')" ElseIf LstType.SelectedItem = "ohne" Then Suchparameter = "TYPE = '' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" Else Suchparameter = "TYPE = '" & LstType.SelectedItem & "' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" End If '''BERECHTIGUNGEN ABFRAGEN''' Suchparameter &= "AND (" 'For Each ber As cBerechtigungen In Class1.LoggedOnUserRights ' If Not ber.Zugriff = "0" Then ' Suchparameter &= "NWSTANDORT =" & ber.Standort & " OR " ' End If 'Next For Each ShownStandort In Class1.Standorte Suchparameter &= "NWSTANDORT ='" & ShownStandort & "' OR " Next Suchparameter = Suchparameter.Substring(0, Suchparameter.Length - 3) Suchparameter &= ")" '''''''''''''''''''''''''''''''''''''''''''' If Not ChkFreieHosts.Checked Then 'AND (DHCP = '0' OR DHCP is Null) Suchparameter &= " and FQDN is not NULL" Else Suchparameter = "IPAdresse is not NULL" End If '''ABFRAGE DEFINIEREN''' ''' 'Dim SelSQL4DGV As String = "*" Dim SelSQL4DGV As String = "FQDN, IPAdresse, Modell, Standort, Type, Seriennummer, QINFO, Info, DHCP, Host, Link, NWSTANDORT" If ChKZugangsdaten.Checked Then SelSQL4DGV &= ", Benutzer, Passwort" End If '''ABFRAGE RADIOBUTTONS + SUCHPARAMETER''' If RadGlobal.Checked Then SQL.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) ElseIf RadStandort.Checked Then SQL.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) End If Try endtime = DateTime.Now LblDebugInfo.Text = "dgvload: " & ((endtime - starttime).Milliseconds) & vbCrLf ''--------------------------------------------------------------------------------------------------------/START// Abfrage DHCP Clients If DHCPRefresh = True And SucheAktiv = False Then con.Open() cmd.CommandText = "SELECT DHCPAbfragen FROM Tbl_Netzwerke WHERE NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "'" reader = cmd.ExecuteReader() Do While reader.Read() DHCPAbfragen = Class1.ReadNullAs0(reader, "DHCPAbfragen") Loop reader.Close() If DHCPAbfragen = True Then If ChkDHCPClients.Checked = True Then Dim NWAdresse As String Class1.Name2Netzwerk(Standort, Netzwerk, NWAdresse) Dim DHCPServer As String = Class1.GetDHCPServer(NWAdresse) GetDHCPClients(NWAdresse, DHCPServer, ChkFreieHosts.Checked, ds) Else End If End If ' DHCPRefresh = False End If ''--------------------------------------------------------------------------------------------------------/Ende// Abfrage DHCP Clients Class1.HostList.Clear() For Each dr As DataRow In ds.Tables(0).Rows Class1.HostList.Add(dr.Item("IPAdresse").ToString) Next dgvfill(ds, "Netzwerk") Dim endtimedgvfill As Date = Date.Now LblDebugInfo.Text &= "dgvfill: " & ((endtimedgvfill - starttime).Milliseconds) & vbCrLf Catch ex As Exception MsgBox("dgvload_filter(): " & ex.Message) End Try con.Close() NetzwerkInfoAnzeige() Else Suchparameter = "(TITEL LIKE'" & suchbegriff & "'OR INFO LIKE'" & suchbegriff & "'OR LINK LIKE'" & suchbegriff & "')" 'Dim dataadapter As New SqlDataAdapter("select * from TbL_Allgemein where " & Suchparameter & "", con) '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) dgvfill(ds, "Allgemein") ' MsgBox("keine Wahl") End If printds = ds End Function Public Function dgvfill(ds As DataSet, design As String) ' Class1.dtSuchergebnis.Clear() Class1.dtSuchergebnis = ds.Tables(0) Dim starttime As Date = DateTime.Now Dim endtime As New Date If design = "Netzwerk" Then Try With DgVMain .DataSource = ds.Tables(0) If ChkKompAnsicht.Checked Then .DefaultCellStyle.WrapMode = DataGridViewTriState.False .AutoSizeRowsMode = 0 'DataGridViewAutoSizeColumnsMode.ColumnHeader 'MsgBox(DgVMain.AutoSizeRowsMode) Else .DefaultCellStyle.WrapMode = DataGridViewTriState.True .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells End If If TxtSuche.Text = "" And LstType.SelectedItem = "" Then .RowsDefaultCellStyle.BackColor = Color.White SucheAktiv = False Else .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite SucheAktiv = True End If ' MsgBox(SucheAktiv) .RowHeadersVisible = True .Columns("FQDN").DisplayIndex = 0 .Columns("FQDN").HeaderText = "Name / FQDN" .Columns("IPAdresse").DisplayIndex = 1 .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells ' .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells .Columns("Modell").DisplayIndex = 2 .Columns("Standort").DisplayIndex = 3 .Columns("TYPE").DisplayIndex = 4 .Columns("TYPE").HeaderText = "Gerätetype" .Columns("Seriennummer").DisplayIndex = 5 .Columns("QINFO").HeaderText = "Quick-Info" .Columns("NWSTANDORT").Visible = False 'If ChKZugangsdaten.Checked = False Then ' .Columns("Benutzer").Visible = False ' .Columns("Passwort").Visible = False 'ElseIf ChKZugangsdaten.Checked = True Then ' .Columns("Benutzer").Visible = True ' .Columns("Benutzer").DisplayIndex = 6 ' .Columns("Passwort").Visible = True ' .Columns("Passwort").DisplayIndex = 7 'End If '' .Columns("NETNAME").Visible = False '.Columns("Netzwerk").Visible = False .Columns("DHCP").Visible = False '.Columns("MAC").Visible = False .Columns("LINK").Visible = False '.Columns("Linked").Visible = False '.Columns("Linked").DisplayIndex = 9 '.Columns("LinkedWith").Visible = False '' .Columns("AddIp").Visible = False .Columns("HOST").Visible = False '' .Columns("NWSTANDORT").Visible = False '.Columns("Info").Width = 250 '.Sort(DgVMain.Columns("Host"), System.ComponentModel.ListSortDirection.Ascending) End With Catch ex As Exception MsgBox("With DGV: " & ex.Message) End Try If SelectedDGVIndex < DgVMain.Rows.Count - 1 Then DgVMain.ClearSelection() DgVMain.Rows(SelectedDGVIndex).Selected = True DgVMain.FirstDisplayedScrollingRowIndex = FirstDisplayedDGVEntry Else DgVMain.Rows(0).Selected = True End If ''--------------------------------------------------------------------------------------------------------/START//Farbig hervorheben, Check DHCP Filter Dim indexDHCP As Integer = DgVMain.Columns("DHCP").Index Dim indexFQDN As Integer = DgVMain.Columns("FQDN").Index Dim modellFQDN As Integer = DgVMain.Columns("Modell").Index For i = 0 To DgVMain.Rows.Count - 2 '// If (DgVMain.Item(indexDHCP, i).Value = "1" Or DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende") And DgVMain.Item(indexFQDN, i).Value.ToString = "" Then ' DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.MistyRose 'DgVMain.Rows(i).Visible = ChkAlles.Checked ElseIf (DgVMain.Item(indexDHCP, i).Value = "1" Or DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende") Then DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.LightYellow 'ElseIf DgVMain.Item(indexDHCP, i).Value = "Start" Or DgVMain.Item(indexDHCP, i).Value = "Ende" Then ' DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.Gold ' DgVMain.Rows(i).Visible = ChkAlles.Checked End If Try If DgVMain.Item(indexFQDN, i).Value.ToString = "" And DgVMain.Item(modellFQDN, i).Value.ToString = "" And DgVMain.Item(indexDHCP, i).Value = "0" Then DgVMain.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen ' DgVMain.Rows(i).Visible = ChkAlles.Checked End If Catch ex As Exception MsgBox("DgVMain.Item(index*, i).Value: " & ex.Message & vbCrLf & DgVMain.Rows.Count & " " & i) End Try Next i ElseIf design = "Allgemein" Then 'MsgBox(ChKZugangsdaten.Checked) With DgVMain If ChkKompAnsicht.Checked Then .DefaultCellStyle.WrapMode = DataGridViewTriState.False Else .DefaultCellStyle.WrapMode = DataGridViewTriState.True End If If TxtSuche.Text = "" And LstType.SelectedItem = "" Then .RowsDefaultCellStyle.BackColor = Color.White Else .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite End If .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells .DataSource = ds.Tables(0) .Columns("ID").Visible = False .Columns("Rubrik").Visible = False .Columns("Linked").Visible = False .Columns("Link").Visible = False .Columns("LinkedWith").Visible = False .Columns("Titel").Width = 150 .Columns("Zugriff").Visible = False .Columns("Standort").Visible = False .Columns("ID1").Visible = False .Columns("Benutzeranmeldename").Visible = False .Sort(DgVMain.Columns("Titel"), System.ComponentModel.ListSortDirection.Ascending) If ChKZugangsdaten.Checked = False Then .Columns("Benutzer").Visible = False .Columns("Passwort").Visible = False ElseIf ChKZugangsdaten.Checked = True Then .Columns("Benutzer").Visible = True ' .Columns("Benutzer").DisplayIndex = 6 .Columns("Passwort").Visible = True ' .Columns("Passwort").DisplayIndex = 7 End If End With End If lblCount.Text = DgVMain.Rows.Count - 1 End Function Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click cFolder.netdelete("10.4.3.17") End Sub Function GetUsersInGroup(ByVal groupname As String, Optional ByVal LDAP As String = "LDAP://DC=VERAG,DC=OST,DC=DMN") As List(Of String) Dim Userlist As New List(Of String) Dim locDirectoryEntry As New DirectoryServices.DirectoryEntry(LDAP) Dim Searcher As New DirectoryServices.DirectorySearcher(locDirectoryEntry, "sAMAccountName=" & groupname) Dim Result As DirectoryServices.SearchResult = Searcher.FindOne If Result IsNot Nothing Then For Each User In Result.Properties("Member") Userlist.Add(User) Next End If Return Userlist End Function Private Sub CMdTest2_Click(sender As Object, e As EventArgs) Handles CMdTest2.Click Dim test As New Object Dim testuser As New cBenutzer testuser.FillFromDC("CN=S-1-5-21-585332750-1805456821-3920631953-1235,CN=ForeignSecurityPrincipals,DC=verag,DC=ost,DC=dmn") End Sub Public Function GetDHCPClients(Netzwerk As String, DHCPServer As String, Fill As Boolean, ByRef ds As DataSet) Dim NWShort As String Dim DHCPClientIP As String Dim dhcpclients() As DHCP.DHCP_CLIENT_INFO LblDebugInfo.Text &= "" Dim a As UInteger = DHCP.StringIPAddressToUInt32(Netzwerk) Dim b As UInteger = DHCP.StringIPAddressToUInt32("255.255.255.255") DHCP.ListSubnetClients(DHCPServer, Netzwerk, dhcpclients) DHCP.StringNWAdressToNWAdressSHORT(Netzwerk, NWShort) Try For i = 0 To DHCP.Client_Array.NumElements - 1 DHCPClientIP = NWShort & (b - ((dhcpclients(i).ClientIpAddress * -1) + a - 1)).ToString ''----------------------------------------Fill True: Wenn DHCP Clients bereits im DS enthalten sind werden diese Hosts geändert. ' If Fill = True Then Dim HostRow() As Data.DataRow HostRow = ds.Tables(0).Select("IPAdresse = '" & DHCPClientIP & "'") ' MsgBox(DHCPClientIP & HostRow.Length) If HostRow.Length > 0 Then HostRow(0)("FQDN") = "*" & dhcpclients(i).ClientName HostRow(0)("QINFO") = "DHCP Client" ''----------------------------------------Fill False: DHCP Clients werden hinzugefügt Else 'MsgBox("fill not true") Dim rows() As DataRow = ds.Tables(0).Select("IPAdresse = '" & DHCPClientIP & "'") If rows.Count > 0 Then Dim FQDN As String = rows(0).Item("FQDN") Else Dim newrow As DataRow = ds.Tables(0).NewRow() newrow("IPAdresse") = DHCPClientIP newrow("FQDN") = "*" & dhcpclients(i).ClientName newrow("QINFO") = "DHCP Client" newrow("DHCP") = "1" newrow("Host") = (b - ((dhcpclients(i).ClientIpAddress * -1) + a - 1)).ToString ds.Tables(0).Rows.Add(newrow) 'End If End If End If Next ds.Tables(0).DefaultView.Sort = "Host" Catch ex As Exception MsgBox("GetDHCPClients() " & ex.Message) End Try End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerUhrzeit.Tick LblUhrzeit.Text = Date.Now End Sub 'Private Sub DgVMain_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentDoubleClick, DgVMain.CellDoubleClick ' 'MsgBox(DgVMain.CurrentRow.Cells("HOST").Value) ' werbinich() ' If Tabelle = "TbL_Netzwerkclients" Then ' If LstStandort.SelectedItem = "" Then ' LblUhrzeit.Text = "Kein Standort ausgewählt!" ' Exit Sub ' End If ' If LstNetzwerk.SelectedItem = "" Then ' LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" ' Exit Sub ' End If ' Class1.Absender = "Main" ' HostBearbeiten.Show() ' ElseIf Tabelle = "TbL_Allgemein" Then ' EintragBearbeiten.Show() ' End If 'End Sub Private Sub CmdNetzwerkbearbeiten_Click(sender As Object, e As EventArgs) Handles CmdNetzwerkbearbeiten.Click werbinich() Class1.Absender = "Main" Dim NWE As New NWEdit 'NWE.NWStandort = SenderStandort 'NWE.Netzwerkname = SenderNetzwerk NWE.NW.getNetzwerk(SenderStandort, SenderNetzwerk) NWE.StartPosition = FormStartPosition.Manual NWE.Location = New Point(Location.X + 300, Location.Y + 300) 'NetzwerkBearbeiten.Show() NWE.Show() End Sub Private Sub NetzwerkeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NetzwerkeToolStripMenuItem.Click NetzwerkAdmin.Show() End Sub Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click LstStandortLoad() NetzwerkInfoAnzeige() End Sub Private Sub TxtSuche_TextChanged(sender As Object, e As EventArgs) Handles TxtSuche.TextChanged, RadNurNetzwerk.CheckedChanged, RadGlobal.CheckedChanged, RadStandort.CheckedChanged, LstType.SelectedIndexChanged ', TxtSuche.MouseClick If TxtSuche.TextLength < 1 And LstType.SelectedItem = "" Then Suchbegriff = "%%" ChkFreieHosts.Checked = False dgvload_filter(Suchbegriff) ElseIf TxtSuche.TextLength < 1 And Not LstType.SelectedItem = "" Then ChkDHCPClients.Checked = False ChkFreieHosts.Checked = False dgvload_filter(Suchbegriff) Else Suchbegriff = "%" & Class1.hochkomma(TxtSuche.Text) & "%" ChkDHCPClients.Checked = False ChkFreieHosts.Checked = False dgvload_filter(Suchbegriff) End If End Sub Private Sub ComTypeClick(sender As Object, e As EventArgs) Handles LstType.Click TypeFilter() End Sub Private Sub DgvMainContextMenuItemHost_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemHost.Click, CmDBearbeiten.Click, DgVMain.CellDoubleClick, DgVMain.RowHeaderMouseDoubleClick If Tabelle = "TbL_Netzwerkclients" Then Dim frm As New frmHostBearbeiten Try frm.IP = (DgVMain.CurrentRow.Cells("IPAdresse").Value) Catch Dim NW As New cNetzwerk NW.getNetzwerk(LstStandort.SelectedItem, LstNetzwerk.SelectedItem) NW.getFirstHost() frm.IP = NW.StartIP End Try 'If cBerechtigungen.BenutzerBerechtigungfuerStandort(Class1.LoggedOnUser.BenutzeranmeldeName, DgVMain.CurrentRow.Cells("NWSTANDORT").Value) = "R" Then If cBerechtigungen.BenutzerBerechtigungfuerStandort(Class1.LoggedOnUser.BenutzeranmeldeName, LstStandort.SelectedItem) = "R" Then frm.Panel1.Enabled = False : frm.PanFirewall.Enabled = False End If AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload_filter(Suchbegriff) End Function frm.Show() ElseIf Tabelle = "TbL_Allgemein" Then SelectedDGVIndex = Class1.DBNull2emptyString(DgVMain.CurrentRow.Index) Dim Eintrag As New cEintrag Eintrag.ID = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("ID").Value) Eintrag.rubrik = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Rubrik").Value) Eintrag.Titel = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Titel").Value) Eintrag.Berechtigung = Class1.DBNull2emptyString(DgVMain.CurrentRow.Cells("Zugriff").Value) If Eintrag.getFromSQL() = -1 Then btnNeu.PerformClick() : Exit Sub End If Dim frm As New frmAllgemeinEintrag frm.Eintrag = Eintrag frm.Text = Eintrag.Titel frm.btnBerechtigungen.Enabled = Class1.LoggedOnUserisAdmin AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload(Tabelle) LstAllgemein.SelectedItem = Eintrag.rubrik DgVMain.Rows(SelectedDGVIndex).Selected = True End Function frm.Show() End If End Sub Public Function StartHostBearbeiten() HostBearbeiten.StartPosition = FormStartPosition.Manual HostBearbeiten.Location = New Point(Location.X + 150, Location.Y + 150) EintragBearbeiten.StartPosition = FormStartPosition.Manual EintragBearbeiten.Location = New Point(Location.X + 150, Location.Y + 150) If Tabelle = "TbL_Netzwerkclients" Then If LstStandort.SelectedItem = "" Then LblUhrzeit.Text = "Kein Standort ausgewählt!" Exit Function End If If LstNetzwerk.SelectedItem = "" Then LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" Exit Function End If Class1.Absender = "Main" If HostBearbeiten.Visible Then MsgBox("Fenster ist bereits geöffnet.") HostBearbeiten.BringToFront() Else HostBearbeiten.Show() End If ElseIf Tabelle = "TbL_Allgemein" Then If EintragBearbeiten.Visible Then MsgBox("Fenster ist bereits geöffnet.") EintragBearbeiten.BringToFront() Else EintragBearbeiten.Show() End If End If End Function Private Sub DgvMainContextMenuItemPutty_Click(sender As Object, e As EventArgs) werbinich() Ext_Programme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub DgvMainContextMenuItemLink_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemLink.Click, CmdLink.Click werbinich() Ext_Programme.startlink(DgVMain.CurrentRow.Cells("Link").Value) End Sub Private Sub CmdPutty_Click(sender As Object, e As EventArgs) Handles CmdPutty.Click, PuttyToolStripMenuItem.Click Ext_Programme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub ChkTools_CheckedChanged(sender As Object, e As EventArgs) Handles ChkTools.CheckedChanged If ChkTools.Checked Then PanTools.Visible = True Else PanTools.Visible = False End If End Sub Private Sub CmdPing_Click(sender As Object, e As EventArgs) Handles CmdPing.Click, PingToolStripMenuItem.Click Ext_Programme.pingip(DgVMain.CurrentRow.Cells("IPAdresse").Value) End Sub Private Sub CmdFiles_Click(sender As Object, e As EventArgs) Handles CmdFiles.Click, DateienToolStripMenuItem.Click If DgVMain.GetCellCount(DataGridViewElementStates.Selected) > 0 Then explorerstarten("Client") Else LblUhrzeit.Text = "Keine Auswahl getätigt" End If End Sub Private Sub CmdNWDateien_Click(sender As Object, e As EventArgs) Handles CmdNWDateien.Click, NetzwerkdateienToolStripMenuItem.Click Try explorerstarten("Netzwerk") Catch ex As Exception End Try End Sub Private Function explorerstarten(sender As String, Optional ByVal art As String = "Dateien") Dim ds As New DataSet Dim Path As String Dim islinked As Integer Dim LinkedWith As String If Tabelle = "TbL_Netzwerkclients" Then werbinich() If sender = "Client" Then Try 'dbload() 'con.Open() '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) If IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = "0" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = ds.Tables(0).Rows(0).Item("Linked") End If If IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = "" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = ds.Tables(0).Rows(0).Item("LinkedWith") End If 'Dim linked As Integer = ds.Tables(0).Rows(0).Item("Linked") 'Dim IPA As String = ds.Tables(0).Rows(0).Item("LinkedWith") If islinked = "1" Then Dim dslinked As New DataSet() 'dbload() 'con.Open() 'Dim da As New SqlDataAdapter("SELECT * FROM Tbl_NetzwerkClients WHERE IPAdresse='" & LinkedWith & "'", con) 'da.Fill(dslinked) 'con.Close() SQL.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") Case "SMB" Path = "\\" & dslinked.Tables(0).Rows(0).Item("IPAdresse") End Select Else Select Case art Case "Dateien" Path = Class1.FilePath & "\" & SenderStandort & "_" & SenderNetzwerk & "\" & SenderHost Case "SMB" Path = "\\" & SenderIP End Select End If Catch ex As Exception MsgBox("ExplorerStarten() Tbl_Netzwerkclients: " & ex.Message) End Try ElseIf sender = "Netzwerk" Then Path = Class1.FilePath & "\" & SenderStandort & "_Allgemein" End If ElseIf Tabelle = "TbL_Allgemein" Then Try dbload() con.Open() Dim sda As New SqlDataAdapter("Select * FROM TbL_Allgemein WHERE Rubrik='" & DgVMain.CurrentRow.Cells("Rubrik").Value & "' AND Titel='" & DgVMain.CurrentRow.Cells("Titel").Value & "'", con) sda.Fill(ds) con.Close() Dim Info As String = ds.Tables(0).Rows(0).Item("Info") If IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = "0" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = ds.Tables(0).Rows(0).Item("Linked") End If If IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = "" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = ds.Tables(0).Rows(0).Item("LinkedWith") End If If islinked = "1" Then Dim dslinked As New DataSet() dbload() con.Open() Dim da As New SqlDataAdapter("SELECT * FROM Tbl_Allgemein WHERE LinkedWith='" & LinkedWith & "'", con) da.Fill(dslinked) con.Close() Path = Class1.FilePath & "\" & dslinked.Tables(0).Rows(0).Item("Rubrik") & "\" & dslinked.Tables(0).Rows(0).Item("Titel") '& "\" & dslinked.Tables(0).Rows(0).Item("Host") Else 'MsgBox("not linked") Path = Class1.FilePath & "\" & DgVMain.CurrentRow.Cells("Rubrik").Value & "\" & DgVMain.CurrentRow.Cells("Titel").Value '& "\" & SenderHost End If Catch ex As Exception MsgBox("ExplorerStarten() Tbl_Allgemein: " & ex.Message) End Try Else MsgBox("Da lief was schief...") Exit Function End If ''Pfad öffnen: Try Select Case art Case "Dateien" If IO.Directory.Exists(Path) Then Process.Start(Path) Else IO.Directory.CreateDirectory(Path) Process.Start(Path) End If Case "SMB" Process.Start(Path) End Select Catch ex As Exception MsgBox("Pfad öffnen: " & Path & vbCrLf & ex.Message) End Try 'MsgBox(Tabelle) 'MsgBox(path) End Function Private Sub AnsichtDruckenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnsichtDruckenToolStripMenuItem.Click ' PrintDGV.Print_DataGridView(DgVMain) Dim Print As New frmPrint Print.DruckeZugangsdaten = ChKZugangsdaten.Checked Print.ds = printds Print.Show() End Sub Public Function neuerEintrag() werbinich() If Tabelle = "TbL_Netzwerkclients" Then If LstStandort.SelectedItem = "" Then LblUhrzeit.Text = "Kein Standort ausgewählt!" Exit Function End If If LstNetzwerk.SelectedItem = "" Then LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" Exit Function End If Class1.Absender = "Main" HostBearbeiten.Show() ElseIf Tabelle = "TbL_Allgemein" Then 'SenderTitel = "" 'SenderRubrik = LstAllgemein.SelectedItem Neu = True Dim EintragNeu As New EintragBearbeiten EintragNeu.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) EintragNeu.Show() End If End Function Private Sub ErstellenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ErstellenToolStripMenuItem.Click neuerEintrag() End Sub Private Sub ChkKompAnsicht_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKompAnsicht.CheckedChanged, ChkFreieHosts.CheckedChanged, ChkDHCPClients.CheckedChanged 'dgvload(Tabelle) If ChkFreieHosts.Checked Then TxtSuche.Text = "" LstType.SelectedItem = "" RadNurNetzwerk.Checked = True End If dgvload_filter(Suchbegriff) End Sub Private Sub ExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToolStripMenuItem.Click Class1.csvexport(DgVMain) End Sub Private Sub ImportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportToolStripMenuItem.Click CSVImportieren.Show() End Sub Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click Application.Exit() End Sub Private Sub Closing_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Application.Exit() End Sub Private Sub UpdateToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UpdateToolStripMenuItem.Click CheckUpdate("ImProgramm") End Sub Public Sub StartUpdate() Dim Updater As String = "Dokumentation_Updater.exe" Try My.Computer.FileSystem.CopyFile(Updatequelle & "\" & Updater, sAppPath & "\" & Updater, True) Catch ex As Exception End Try Process.Start("Dokumentation_Updater.exe") Application.Exit() End Sub Private Sub CmdSucheReset_Click(sender As Object, e As EventArgs) Handles CmdSucheReset.Click TxtSuche.Text = "" LstType.SelectedItem = "" RadNurNetzwerk.Checked = True End Sub Public Function CheckUpdate(starter As String) dbload() Dim RemoteVersion As String = "" 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) If ds.Tables(0).Rows.Count Then RemoteVersion = ds.Tables(0).Rows(0).Item(0).ToString End If Catch ex As Exception MsgBox("Kann RemoteVersion nicht abfragen." & ex.Message) TimerUpdate.Enabled = False Exit Function End Try Try If CInt(RemoteVersion.Replace(".", "")) > CInt(Version.Replace(".", "")) Then TimerUpdate.Enabled = False ' LblDebugInfo.Text = sAppPath & ", Version: " & Version & vbCrLf & "TimerUpdateStatus: " & TimerUpdate.Enabled LblInfo.ForeColor = Color.Red LblInfo.Text = "Neue Version verfügbar: " & RemoteVersion If MsgBox("Neue Updates verfügbar. Jetzt ausführen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then StartUpdate() Else Exit Function End If Else LblInfo.Text = "" If starter = "ImProgramm" Then If MsgBox("Keine neuen Updates verfügbar. Trotzdem ausführen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then StartUpdate() Else End If ' LblDebugInfo.Text = sAppPath & ", Version: " & Version & vbCrLf & "TimerUpdateStatus: " & TimerUpdate.Enabled End If Catch ex As Exception MsgBox("Kann Versionen nicht vergleichen: " & ex.Message) End Try End Function Private Sub Form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyData = Keys.F5 Then If Tabelle = "TbL_Allgemein" Then dgvload(Tabelle) Else dgvload_filter(Suchbegriff) End If End If End Sub Private Sub TimerUpdate_Tick(sender As Object, e As EventArgs) Handles TimerUpdate.Tick If Class1.DebugMode = False Then CheckUpdate("Timer") End Sub Private Sub DgVMain_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellClick SelectedDGVIndex = DgVMain.CurrentRow.Index FirstDisplayedDGVEntry = DgVMain.FirstDisplayedScrollingRowIndex End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnNeu.Click Neu = True Dim frm As New frmAllgemeinEintrag frm.Text = "Neuer Eintrag" 'Eintrag.Titel = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Titel").Value)) If Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) = "" Then frm.Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) Else frm.Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) End If AddHandler frm.FormClosing, Function() Me.BringToFront() dgvload(Tabelle) LstAllgemein.SelectedItem = frm.Eintrag.rubrik DgVMain.Rows(SelectedDGVIndex).Selected = True End Function frm.Show() End Sub Private Sub TimerWillkommen_Tick(sender As Object, e As EventArgs) Handles TimerWillkommen.Tick TimerWillkommen.Enabled = False TimerUhrzeit.Enabled = True End Sub Private Sub BenutzerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BenutzerToolStripMenuItem.Click Dim frm As New frmLeer frm.Text = "Benutzerverwaltung" Dim usrcntrl As New uscntr_Benutzer usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) ' frm.Size = usrcntrl.Size frm.Show() End Sub Private Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click cFolder.netuse("Verag", "1VerSub9#", "\\10.4.3.17") End Sub Private Sub ToolStripMenuItemINFO_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemINFO.Click Dim frm As New frmLeer frm.Text = "INFO" Dim usrcntrl As New uscntr_INFO usrcntrl.Dock = DockStyle.Fill : frm.PanMain.Controls.Add(usrcntrl) frm.Show() End Sub Private Sub SMBToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SMBToolStripMenuItem.Click If DgVMain.GetCellCount(DataGridViewElementStates.Selected) > 0 Then explorerstarten("Client", "SMB") Else LblUhrzeit.Text = "Keine Auswahl getätigt" End If End Sub Private Sub IPAdresseInZwischenablageToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles IPAdresseInZwischenablageToolStripMenuItem.Click werbinich() If SenderIP <> String.Empty Then Clipboard.SetText(SenderIP) 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 Dim linked As Boolean = False Dim Standort, Netzwerkname As String Dim slavenetzwerke As String = "" Dim NetzID As String Dim IP As String = DgVMain.CurrentRow.Cells("IPAdresse").Value Dim Host As String = DgVMain.CurrentRow.Cells("Host").Value Dim netzwerk As String = Class1.IP2ShortNW(IP) Class1.ip2netname(IP, Standort, Netzwerkname) NetzID = Standort & "_" & Netzwerkname Dim da As New SqlDataAdapter("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'", con) da.Fill(ds) Dim i As Integer = 0 For Each dr As DataRow In ds.Tables(0).Rows slavenetzwerke &= ds.Tables(0).Rows(i).Item("NWStandort") & "_" & ds.Tables(0).Rows(i).Item("NetName") & ": " & ds.Tables(0).Rows(i).Item("IPAdresse") & vbCrLf i = i + 1 Next con.Close() If Class1.IsLinked(IP) = "1" Then linked = True End If If MsgBox("Eintrag >>" & Host & "<< wirklich löschen?", MessageBoxButtons.OKCancel + MsgBoxStyle.DefaultButton2, "Hosteintrag löschen") = DialogResult.OK Then Me.Cursor = Cursors.WaitCursor Try con.Open() cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" cmd.ExecuteNonQuery() reader = cmd.ExecuteReader() If reader.Read Then Me.Cursor = Cursors.Default If MsgBox("Dieser Eintrag ist ein Master-Eintrag (Linked). Es werden sämtliche Slave-Einträge" & vbCrLf & slavenetzwerke & " ebenfalls gelöscht. Fortfahren?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then Me.Cursor = Cursors.WaitCursor con.Close() con.Open() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" cmd.ExecuteNonQuery() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE IPAdresse ='" & IP & "'" cmd.ExecuteNonQuery() Else con.Close() Exit Sub End If End If con.Close() con.Open() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE IPAdresse ='" & IP & "'" cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Me.Cursor = Cursors.Default con.Close() ElseIf DialogResult.Cancel Then con.Close() Exit Sub End If If linked = False Then If MsgBox("Dazugehörigen Ordner im Dateisystem löschen?", MessageBoxButtons.YesNo + MsgBoxStyle.DefaultButton2, "Dateien löschen") = DialogResult.Yes Then Me.Cursor = Cursors.WaitCursor Dim path As String = Class1.FilePath & "\" & NetzID & "\" & Host Try If IO.Directory.Exists(path) Then Dim files As String() = IO.Directory.GetFiles(path) For Each file As String In files IO.File.Delete(file) Next IO.Directory.Delete(path, True) 'Else ' MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try ElseIf DialogResult.No Then Exit Sub End If Me.Cursor = Cursors.Default End If Class1.RefillNW(netzwerk) dgvload_filter(Suchbegriff) ElseIf Tabelle = "TbL_Allgemein" Then Dim Rubrik, Titel As String Rubrik = DgVMain.CurrentRow.Cells("Rubrik").Value Titel = DgVMain.CurrentRow.Cells("Titel").Value If MessageBox.Show("Eintrag >>" & Titel & "<< wirklich löschen?", "Eintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then con.Open() cmd.CommandText = "DELETE TbL_Allgemein WHERE RUBRIK = '" & Rubrik & "' AND TITEL= '" & Titel & "'" cmd.ExecuteNonQuery() con.Close() End If If MsgBox("Dazugehörigen Ordner im Dateisystem löschen?", MessageBoxButtons.YesNo + MsgBoxStyle.DefaultButton2, "Dateien löschen") = DialogResult.Yes Then Dim path As String = Class1.FilePath & "\" & Rubrik & "\" & Titel Try If IO.Directory.Exists(path) Then Dim files As String() = IO.Directory.GetFiles(path) For Each file As String In files IO.File.Delete(file) Next IO.Directory.Delete(path, True) 'Else ' MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try End If dgvload("TbL_Allgemein") LstAllgemein.SelectedItem = Rubrik End If End Sub End Class '1208