95 lines
3.3 KiB
VB.net
95 lines
3.3 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.Globalization
|
|
Imports System.Threading
|
|
Imports DigitalData.Modules.Base
|
|
|
|
Public NotInheritable Class frmSplash
|
|
Private ReadOnly InitSteps As Integer = 4
|
|
Private ReadOnly Worker As New BackgroundWorker()
|
|
Private ReadOnly MainForm As Form
|
|
|
|
Private Sub frmSplash_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
|
|
If e.KeyCode = Keys.Escape Then
|
|
ESC_Hidden = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
Version.Text = String.Format("Version {0}", My.Application.Info.Version.ToString)
|
|
Copyright.Text = String.Format("{0} {1}", My.Application.Info.Copyright, My.Application.Info.CompanyName)
|
|
|
|
BringToFront()
|
|
InitProgram()
|
|
End Sub
|
|
|
|
Private Sub InitProgram()
|
|
Worker.WorkerReportsProgress = True
|
|
AddHandler Worker.DoWork, AddressOf bw_DoWork
|
|
AddHandler Worker.ProgressChanged, AddressOf bw_ProgressChanged
|
|
AddHandler Worker.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
|
|
|
|
Worker.RunWorkerAsync()
|
|
End Sub
|
|
|
|
Private Function CalcProgress(_step As Integer)
|
|
Return _step * (100 / InitSteps)
|
|
End Function
|
|
|
|
Private Function bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) As Task
|
|
Dim oProgress As String
|
|
'Try
|
|
Dim Init = New ClassInit()
|
|
oProgress = "Initializing Logger"
|
|
Worker.ReportProgress(CalcProgress(1), oProgress)
|
|
Init.InitLogger()
|
|
Thread.Sleep(200)
|
|
oProgress = "Initializing Base Config"
|
|
Worker.ReportProgress(CalcProgress(2), oProgress)
|
|
Init.InitBasics()
|
|
Thread.Sleep(200)
|
|
oProgress = "Initializing Database"
|
|
Worker.ReportProgress(CalcProgress(3), oProgress)
|
|
If Init.InitDatabase_New() = True Then
|
|
Thread.Sleep(200)
|
|
oProgress = "Initializing User-Configuration"
|
|
Worker.ReportProgress(CalcProgress(4), oProgress)
|
|
If My.Settings.GHOSTUSER <> String.Empty Then
|
|
Logger.Info($"GHOSTLogin [{My.Settings.GHOSTUSER}] is active!")
|
|
LogConfig.Debug = True
|
|
End If
|
|
If Init.InitUserLogin(My.Settings.GHOSTUSER) = False Then
|
|
If ERROR_INIT = "" Then
|
|
ERROR_INIT = "INVALID USER"
|
|
End If
|
|
End If
|
|
|
|
Thread.Sleep(200)
|
|
|
|
Else
|
|
ERROR_INIT = "DATABASE"
|
|
End If
|
|
|
|
' Catch ex As Exception
|
|
' ' MsgBox("Unexpected Error in bw_DoWork: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
' End Try
|
|
End Function
|
|
|
|
Private Sub bw_ProgressChanged(sender As Object, e As ProgressChangedEventArgs)
|
|
pbStatus.Value = e.ProgressPercentage
|
|
lblStatus.Text = e.UserState.ToString()
|
|
End Sub
|
|
|
|
Private Sub bw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
|
|
' Bei Fehler MsgBox anzeigen und Programm beenden
|
|
If e.Error IsNot Nothing Then
|
|
MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Unexpected Error in frmSplash")
|
|
Application.Exit()
|
|
End If
|
|
|
|
LanguageEx.SetApplicationLanguage(Logger, USER_LANGUAGE, USER_DATE_FORMAT)
|
|
|
|
' Wenn kein Fehler, Splashscreen schließen
|
|
Close()
|
|
End Sub
|
|
End Class
|