Imports System.ComponentModel Imports System.Diagnostics Imports System.Threading Imports System.Globalization Public NotInheritable Class frmSplash 'TODO: Dieses Formular kann einfach als Begrüßungsbildschirm für die Anwendung festgelegt werden, indem Sie zur Registerkarte "Anwendung" ' des Projekt-Designers wechseln (Menü "Projekt", Option "Eigenschaften"). Private InitSteps As Integer = 4 Private bw As New BackgroundWorker() Private Sub frmSplash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Richten Sie den Dialogtext zur Laufzeit gemäß den Assemblyinformationen der Anwendung ein. 'TODO: Die Assemblyinformationen der Anwendung im Bereich "Anwendung" des Dialogfelds für die ' Projekteigenschaften (im Menü "Projekt") anpassen. 'Anwendungstitel 'If My.Application.Info.Title <> "" Then ' ApplicationTitle.Text = My.Application.Info.Title 'Else ' 'Wenn der Anwendungstitel fehlt, Anwendungsnamen ohne Erweiterung verwenden ' ApplicationTitle.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) 'End If 'Verwenden Sie zum Formatieren der Versionsinformationen den Text, der zur Entwurfszeit in der Versionskontrolle festgelegt wurde, als ' Formatierungszeichenfolge. Dies ermöglicht ggf. eine effektive Lokalisierung. ' Build- und Revisionsinformationen können durch Verwendung des folgenden Codes und durch Ändern ' des Entwurfszeittexts der Versionskontrolle in "Version {0}.{1:00}.{2}.{3}" oder einen ähnlichen Text eingeschlossen werden. Weitere Informationen erhalten Sie unter ' String.Format() in der Hilfe. ' ' Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build, My.Application.Info.Version.Revision) lblVersion.Text = String.Format("Version {0}", My.Application.Info.Version.ToString) 'Copyrightinformationen lblCopyright.Text = My.Application.Info.Copyright Me.BringToFront() Dim p As Process Dim RunCount = 0 For Each p In Process.GetProcesses If p.ProcessName.Contains("lobal_Indexe") Then RunCount += 1 End If Next 'If RunCount = 2 Then ' MsgBox("Application already running. " & "GLOBIX will be closed!", MsgBoxStyle.Exclamation) ' My.Settings.AppTerminate = True ' My.Settings.Save() ' Me.Close() 'Else ' InitProgram() 'End If InitProgram() End Sub Private Sub InitProgram() bw.WorkerReportsProgress = True AddHandler bw.DoWork, AddressOf bw_DoWork AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted bw.RunWorkerAsync() End Sub Private Function CalcProgress(_step As Integer) Return _step * (100 / InitSteps) End Function _ Private Sub bw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Dim _Init As ClassInit = New ClassInit() bw.ReportProgress(CalcProgress(1), "Initialize Logging") _Init.InitLogger() System.Threading.Thread.Sleep(600) bw.ReportProgress(CalcProgress(2), "Initialize User Settings") _Init.InitUserConfig() System.Threading.Thread.Sleep(600) bw.ReportProgress(CalcProgress(3), "Initialize Database") Dim EDMISERV_ONLINE As Boolean = False If EDMIService.Client Is Nothing Then EDMISERV_ONLINE = False Else If EDMIService.Client.IsOnline = True Then EDMISERV_ONLINE = True End If End If If _Init.InitDatabase(EDMISERV_ONLINE) = True Then LOGGER.Debug("SPLASH: Database successfully intitialized!") System.Threading.Thread.Sleep(500) bw.ReportProgress(CalcProgress(4), "Initialize UserConfiguration") _Init.InitBasics() _Init.InitUserLogin() _Init.InitBasics2() End If End Sub Private Sub bw_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) pbStatus.Value = e.ProgressPercentage lblStatus.Text = e.UserState.ToString() End Sub Private Sub bw_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) ' Bei Fehler MsgBox anzeigen und Programm beenden If e.Error IsNot Nothing Then LOGGER.Error(e.Error) MsgBox(e.Error.Message & vbNewLine & e.Error.StackTrace.ToString, MsgBoxStyle.Critical, "Unexpected error in Initializing application") Application.Exit() End If ' Wenn kein Fehler, Splashscreen schließen Me.Close() End Sub Public Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub End Class