ToolCollection/ToolCollection/frmGrundeinstellungen.vb

141 lines
6.3 KiB
VB.net

Public Class frmGrundeinstellungen
Private Shared _Instance As frmGrundeinstellungen = Nothing
Private _isLoading As Boolean = False
Public Shared Function Instance() As frmGrundeinstellungen
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmGrundeinstellungen
End If
_Instance.BringToFront()
Return _Instance
End Function
Declare Function SetProcessAffinityMask Lib "kernel32.dll" (ByVal hProcess As Integer, ByVal dwProcessAffinityMask As IntPtr) As Boolean
Private Sub cmlLogart_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmlLogart.SelectedIndexChanged
If cmlLogart.SelectedIndex <> -1 Then
If Me.cmlLogart.SelectedIndex = 0 Then
My.Settings.vLogErrorsonly = True
Else
My.Settings.vLogErrorsonly = False
End If
My.Settings.Save()
End If
End Sub
Private Sub frmGrundeinstellungen_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
txtTimeDeleteLogs.Text = My.Settings.vDeleteLogsTime
My.Settings.Save()
End Sub
Private Sub frmGrundeinstellungen_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
If My.Settings.vLogErrorsonly = True Then
Me.cmlLogart.SelectedIndex = 0
Else
Me.cmlLogart.SelectedIndex = 1
End If
'
cmbCores.SelectedIndex = cmbCores.FindStringExact(My.Settings.Cores)
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbCores.SelectedIndexChanged
Dim num As Integer = cmbCores.Items.Count - 1
If cmbCores.SelectedIndex = 0 Then
SetProcessAffinityMask(Process.GetCurrentProcess.Handle, (2 ^ num) - 1)
Else
num = cmbCores.SelectedIndex
SetProcessAffinityMask(Process.GetCurrentProcess.Handle, (2 ^ num) - 1)
End If
My.Settings.Cores = cmbCores.Text
My.Settings.Save()
End Sub
Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
If IsNumeric(TextBox4.Text) = False Then
MsgBox("Hier sind nur Zahlen erlaubt", MsgBoxStyle.Exclamation)
TextBox4.Text = "30"
End If
End Sub
Private Sub txterrorIndex_TextChanged(sender As Object, e As EventArgs) Handles txterrorIndex.TextChanged
End Sub
Private Sub chkAutoDeleteLogs_CheckedChanged(sender As Object, e As EventArgs) Handles chkAutoDeleteLogs.CheckedChanged
If _isLoading Then Exit Sub
If chkAutoDeleteLogs.Checked Then
Dim dt As DateTime
If Not DateTime.TryParse(txtTimeDeleteLogs.Text, dt) Then
MsgBox("Ungültige Eingabe! Der Zeitpunkt für die Löschung wurde auf 03:00 Uhr gesetzt. Bitte geben Sie die Uhrzeit in folgendem Format ein: HH:mm.", MsgBoxStyle.Information)
'chkAutoDeleteLogs.Checked = False
'txtTimeDeleteLogs.Text = ""
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
txtTimeDeleteLogs.Text = My.Settings.vDefaultDeleteLogsTime.ToShortTimeString
My.Settings.Save()
Else
My.Settings.vDeleteLogsTime = txtTimeDeleteLogs.Text
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
My.Settings.Save()
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
frmStart.Instance().SetupTimerDeleteLogfiles()
End If
Else
txtTimeDeleteLogs.Text = ""
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
My.Settings.Save()
lblLogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
frmStart.Instance().TimerDeleteLogfiles.Stop()
End If
End Sub
Private Sub FrmGrundeinstellungen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_isLoading = True
Try
If My.Settings.vAutoDeleteLogs Then
chkAutoDeleteLogs.Checked = My.Settings.vAutoDeleteLogs
If String.IsNullOrWhiteSpace(My.Settings.vDeleteLogsTime.ToString) Then
txtTimeDeleteLogs.Text = My.Settings.vDefaultDeleteLogsTime.ToShortTimeString
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDefaultDeleteLogsTime.ToShortTimeString & " Uhr."
Else
txtTimeDeleteLogs.Text = My.Settings.vDeleteLogsTime.ToShortTimeString
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
End If
Else
txtTimeDeleteLogs.Text = ""
lblLogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
End If
Catch ex As Exception
End Try
_isLoading = False
End Sub
Private Sub txtTimeDeleteLogs_TextChanged(sender As Object, e As EventArgs) Handles txtTimeDeleteLogs.TextChanged
' Falls gerade geladen wird oder Checkbox nicht aktiv ist → nichts machen
If _isLoading OrElse Not chkAutoDeleteLogs.Checked Then Exit Sub
Dim dt As DateTime
' Prüfen, ob Eingabe im Format HH:mm gültig ist
If DateTime.TryParseExact(txtTimeDeleteLogs.Text, "HH:mm", Nothing, Globalization.DateTimeStyles.None, dt) Then
' Neuen Wert in Settings speichern
My.Settings.vDeleteLogsTime = dt
My.Settings.Save()
' Labels aktualisieren
lblLogDeleteTime.Text = $"Logs werden automatisch gelöscht um: {dt:HH:mm} Uhr."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = lblLogDeleteTime.Text
' Timer neu setzen
frmStart.Instance().SetupTimerDeleteLogfiles()
End If
End Sub
End Class