Imports System.IO Imports Microsoft.Office.Interop Imports Independentsoft Imports DLLLicenseManager Imports System.Text Public Class frmStart Dim sql_User_Login As String = "UPDATE TBDD_USER SET LOGGED_IN = @LogInOut, LOGGED_WHERE = '@ANGEMELDETWO' WHERE (LOWER(USERNAME) = LOWER('@user'))" Dim sql_UserID As String = "SELECT GUID FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))" Private USER_GUID Private ISUserAdmin As Boolean = False Public _lizenzManager As ClassLicenseManager Dim loaded As Boolean = False Dim WithEvents HotKey As New clsHotkey(Me) Private Sub frmMain_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop ClassDragDrop.Drop_File(e) Check_Dropped_Files() End Sub Private Sub ReceiveHotKey(ByVal HotKeyID As String) Handles HotKey.HotKeyPressed Me.Cursor = Cursors.WaitCursor Me.NotifyIcon1.Visible = True NotifyIcon1.ShowBalloonTip(2000, "Hotkey", "Hotkey wird ausgeführt!", ToolTipIcon.Info) Try 'Die vorherige Tempfile löschen If CURRENT_WD_TEMPSEARCH <> "" Then If My.Computer.FileSystem.FileExists(CURRENT_WD_TEMPSEARCH) Then Try My.Computer.FileSystem.DeleteFile(CURRENT_WD_TEMPSEARCH) Catch ex As Exception End Try End If End If Dim HK1 As String Dim HK2 As String 'Die Hotkeys definieren Dim SQL As String = "SELECT * FROM TBHOTKEYTEMP_USER_HOTKEYS WHERE HOTKEY_ID = " & HotKeyID Dim DTHOTKEYSTEMP As DataTable = ClassDatabase.Return_Datatable(SQL, True) If Not IsNothing(DTHOTKEYSTEMP) Then HK1 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY1") HK2 = DTHOTKEYSTEMP.Rows(0).Item("HOTKEY2") 'Alle Profile raussuchen die die Tastaturkombination enthalten SQL = "select * from TBHOTKEY_USER_PROFILE where UPPER(HOTKEY1) = UPPER('" & HK1 & "') AND UPPER(HOTKEY2) = UPPER('" & HK2 & "') AND USER_ID = " & CURRENT_USERID Dim DTHOTKEY_PROFILES As DataTable = ClassDatabase.Return_Datatable(SQL, True) Dim Result As String = "" If Not IsNothing(DTHOTKEY_PROFILES) Then For Each row As DataRow In DTHOTKEY_PROFILES.Rows Result = ClassHotkey_Windream.RUN_WD_SEARCH(row.Item("GUID")) Next End If If Result = "" Then Me.NotifyIcon1.Visible = False Else NotifyIcon1.ShowBalloonTip(5000, "Hotkey-Fehler:", Result.ToString, ToolTipIcon.Warning) End If End If Catch ex As Exception MsgBox("Error in ReceiveHotKey: " & ex.Message, MsgBoxStyle.Critical) End Try Me.Cursor = Cursors.Default End Sub Private Sub frmMain_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter Drag_Enter(sender, e) End Sub Sub Drag_Enter(sender As Object, e As DragEventArgs) If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.All Console.WriteLine("DragEnter ...DragDrop") ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then 'handle a message dragged from Outlook e.Effect = DragDropEffects.Copy Console.WriteLine("DragEnter ...OutlookMessage") ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then e.Effect = DragDropEffects.Copy Console.WriteLine("DragEnter ...Attachment from Outlook") Else 'otherwise, do not handle e.Effect = DragDropEffects.None End If End Sub Sub Check_Dropped_Files() 'Try Me.TopMost = False ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')") CURRENT_ABBRUCH = 0 Dim i As Integer For Each Str As Object In ClassDragDrop.files_dropped If Not Str Is Nothing Then If LogErrorsOnly = False Then ClassLogger.Add(">> Check Drop-File: " & Str.ToString, False) Dim handleType As String = Str.Substring(0, Str.LastIndexOf("@") + 1) Dim filename As String = Str.Substring(Str.LastIndexOf("@") + 1) If ClassIndexFunctions.FileExistsinDropTable(filename) = False Then ClassFilehandle.Decide_FileHandle(filename, handleType) i += 1 Else Console.WriteLine("File gibt es bereits") End If End If Next Me.TopMost = True Dim sql As String = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')" DTACTUAL_FILES = Nothing DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True) ABORT_INDEXING = False If DTACTUAL_FILES.Rows.Count > 1 Then frmIndexFileList.ShowDialog() DTACTUAL_FILES = Nothing DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True) End If For Each Filerow As DataRow In DTACTUAL_FILES.Rows Dim filestring As String = Filerow.Item("FILENAME2WORK") CURRENT_FILENAME = Filerow.Item("FILENAME2WORK") CURRENT_WORKFILE_GUID = Filerow.Item(0) CURRENT_WORKFILE = Filerow.Item("FILENAME2WORK") If LogErrorsOnly = False Then ClassLogger.Add(">> CURRENT_WORKFILE: " & CURRENT_WORKFILE, False) If File.Exists(CURRENT_WORKFILE) Then Open_IndexDialog() Else Console.WriteLine("File existiert nicht mehr!") End If Next End Sub Sub Open_IndexDialog() Try Me.Hide() frmIndex.ShowDialog() Me.Visible = True Me.TopMost = True Me.BringToFront() If File.Exists(CURRENT_FILENAME) Then Select Case CURRENT_ABBRUCH Case 1 MsgBox("Bitte indexieren Sie die Datei vollständig!" & vbNewLine & "(Abbruch 1 des Indexierungsvorgangs)", MsgBoxStyle.Information) Open_IndexDialog() Case 2 Dim result As MsgBoxResult result = MessageBox.Show("Sie brechen nun zum zweiten Mal den Indexierungsvorgang ab!" & vbNewLine & "Wollen Sie die Indexierung aller Dateien abbrechen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If result = MsgBoxResult.Yes Then Dim containsfw_file As Boolean = False Try ABORT_INDEXING = True For Each Filerow As DataRow In DTACTUAL_FILES.Rows Dim filestring As String = Filerow.Item("FILENAME2WORK") Dim handletype As String = Filerow.Item("HANDLE_TYPE") If handletype = "@MSGONLY@" Or handletype = "@ATTMNTEXTRACTED@" Then System.IO.File.Delete(filestring) ElseIf handletype.StartsWith("@FW") Then containsfw_file = True End If Next 'Zuerst die Daten des Ablaufs löschen ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True) If containsfw_file = True Then MsgBox("Der Indexierungsprozess beinhaltete (auch) Dateien per Folderwatch!" & vbNewLine & "Diese Dateien wurden nicht gelöscht und verbleiben im Folderwatch-Verzeichnis!" & vbNewLine & "Bitte verschieben Sie die Dateien ggfls.", MsgBoxStyle.Information, "Achtung - Hinweis:") End If Catch ex As Exception MsgBox("Fehler bei Abbruch der Indexierung: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try CURRENT_ABBRUCH = 0 Exit Sub Else CURRENT_ABBRUCH = 0 End If End Select End If Catch ex As Exception MsgBox("Fehler bei Aufruf Indexdialog: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Me.Visible = True End Try End Sub Private Sub frmStart_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Try ClassLogger.Add("", False) If START_INCOMPLETE = False Then Dim sql = sql_User_Login sql = sql.Replace("@LogInOut", 0) sql = sql.Replace("@ANGEMELDETWO", "''") sql = sql.Replace("@user", Environment.UserName) ClassDatabase.Execute_non_Query(sql) If Not USER_GUID Is Nothing Then sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE = 'Global-Indexer'" ClassDatabase.Execute_non_Query(sql) End If End If ClassWindowLocation.SaveFormLocationSize(Me) Catch ex As Exception End Try If Not USER_GUID Is Nothing Then Unregister_Hotkeys() End If End Sub Sub Refresh_Licence() Try Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "") Dim sql As String = "SELECT LICENSEKEY FROM TBGI_CONFIGURATION WHERE GUID = 1" Dim lic As String = ClassDatabase.Execute_Scalar(sql, MyConnectionString) Dim licString = Me._lizenzManager.DecodeLicenseKey(lic) Dim split() = licString.ToString.Split("#") If lic <> "" Then License_Anzahl = split(0) Else License_Anzahl = 0 End If If CDate(split(1)) < CDate(Now.ToShortDateString) Then MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & split(1) & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation) License_Expired = True License_Anzahl = 0 End If 'tslblLicenses.Text = "Anzahl Lizenzen: " & licenseanzahl LicenseProfiles = split(2) Try LicenseHotKey = split(3) Catch ex As Exception LicenseHotKey = 0 End Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler bei Licensemanager:") End Try End Sub Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles Me.Load 'Me.TransparencyKey = Color.Transparent ' Me.BackColor = Color.Transparent Try Me.Opacity = 30 ClassWindowLocation.LoadFormLocationSize(Me) Dim sql = sql_UserID sql = sql.Replace("@user", Environment.UserName) ClassLogger.Init("", "log_" & Environment.UserName) ClassLogger.Add(">> Programmstart: " & Now, False) ClassLogger.Add(">> Username: " & Environment.UserName, False) LoadMyConfig() If LoadFileExclusion() = False Then MsgBox("Dies Ausschlusskriterien für Dateien in Folderwatch konnten nicht angelegt werden!", MsgBoxStyle.Information) End If If MyConnectionString = String.Empty Then frmConfig_Basic.ShowDialog() End If If ClassDatabase.Init() = False Then ERROR_STATE = "FAILED CONNECTION" MsgBox("Es konnte keine Datenbankverbindung aufgebaut werden!" & vbNewLine & "Bitte prüfen Sie die Konfiguration der Datenbankverbindung und ggfls. den Datenbankserver", MsgBoxStyle.Critical) frmConfig_Basic.ShowDialog() End If If ClassDatabase.Init() = False Then ClassLogger.Add(" >> Global Indexer wird geschlossen!", False) START_INCOMPLETE = True Exit Sub End If If MyConnectionString = String.Empty Then ClassLogger.Add(" >> Kein Connection-String definiert - Global Indexer wird geschlossen!", False) START_INCOMPLETE = True Exit Sub End If USER_GUID = ClassDatabase.Execute_Scalar(sql, MyConnectionString) If USER_GUID Is Nothing Then ClassLogger.Add(" - ACHTUNG: User '" & Environment.UserName & "' nicht in der Userverwaltung hinterlegt!", False) MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") ClassLogger.Add(" >> Global Indexer wird geschlossen!", False) START_INCOMPLETE = True Exit Sub Else Refresh_Licence() CURRENT_USERID = USER_GUID If UniversalViewer = String.Empty And My.Settings.DoNot_Show_Documents = False Then ERROR_STATE = "NO UV" frmConfig_Basic.ShowDialog() End If 'Die FolderWatch starten Dim folderwatch = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USERID, MyConnectionString) Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar("SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USERID, MyConnectionString) If Not folderwatch Is Nothing Then CURRENT_FOLDERWATCH = folderwatch If FW_started = True Then tslblFW.Visible = True ClassFolderWatcher.StartStop_FolderWatch() End If End If If Not folderwatch_SCAN Is Nothing Then CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN If FWSCAN_started = True Then tslblFW.Visible = True ClassFolderWatcher.StartStop_FolderWatchSCAN() End If End If If CURRENT_FOLDERWATCH <> "" Or CURRENT_SCAN_FOLDERWATCH <> "" Then TimerFolderWatch.Start() End If sql = "SELECT MODULE_GI FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))" sql = sql.Replace("@user", Environment.UserName) If ClassDatabase.Execute_Scalar(sql, MyConnectionString, True) = False Then ClassLogger.Add(" - User: " & Environment.UserName & " nicht für Modul freigegben!", False) MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") START_INCOMPLETE = True Exit Sub Else 'Am System anmelden sql = sql_User_Login sql = sql.Replace("@LogInOut", 1) sql = sql.Replace("@ANGEMELDETWO", Environment.MachineName) sql = sql.Replace("@user", Environment.UserName) If ClassDatabase.Execute_non_Query(sql, True) = False Then START_INCOMPLETE = True Exit Sub End If sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'" If ClassDatabase.Execute_non_Query(sql, True) = True Then End If sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & USER_GUID & ",'Global-Indexer')" ClassDatabase.Execute_non_Query(sql, True) sql = "SELECT GI_ADMIN FROM TBDD_USER WHERE GUID = " & USER_GUID ISUserAdmin = ClassDatabase.Execute_Scalar(sql, MyConnectionString) If ISUserAdmin = True Then ToolStripSeparator1.Visible = True AdministrationToolStripMenuItem.Visible = True Else ToolStripSeparator1.Visible = False AdministrationToolStripMenuItem.Visible = False End If 'Lizenz abgellaufen, überprüfen ob User Admin ist If License_Expired And ISUserAdmin = False Then ' wenn ja dann schliessen START_INCOMPLETE = True Exit Sub Else 'ansonsten timer starten TimerClose3Minutes.Start() End If 'Anzahl der eingeloggten User UserLoggedin = ClassDatabase.Execute_Scalar("select count(*) from TBDD_USER_MODULE_LOG_IN where MODULE = 'Global-Indexer'", MyConnectionString, True) If License_Anzahl < UserLoggedin Then MsgBox("Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & License_Anzahl.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:") ClassLogger.Add(" >> Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der Lizenzen (" & License_Anzahl & ") für Process-Manager!", False) If ISUserAdmin = False Then 'Anmeldung wieder herausnehmen sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Global-Indexer'" ClassDatabase.Execute_non_Query(sql, True) ClassLogger.Add(" - Wieder abgemeldet", False) START_INCOMPLETE = True Exit Sub Else 'ansonsten timer starten If TimerClose3Minutes.Enabled = False Then TimerClose3Minutes.Start() End If End If End If sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Global-Indexer'" Dim anzahl = ClassDatabase.Execute_Scalar(sql, MyConnectionString) ClassDatabase.Execute_non_Query("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')", True) If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl Angemeldete User: " & anzahl.ToString, False) If Load_BasicConfig() = False Then START_INCOMPLETE = True Exit Sub End If Unregister_Hotkeys() Load_Hotkeys() End If End If Catch ex As Exception MsgBox("Unexpected Error in Load-Form" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Unregister_Hotkeys() Try Dim sql As String = "Select * from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True) If Not IsNothing(DT) Then For Each row As DataRow In DT.Rows HotKey.RemoveHotKey(row.Item("HOTKEY_ID")) Next sql = "delete from TBHOTKEYTEMP_USER_HOTKEYS where [USER_ID] = " & CURRENT_USERID ClassDatabase.Execute_non_Query(sql, True) End If Catch ex As Exception MsgBox("Error in Unregister_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_Hotkeys() Try Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT HOTKEY1, HOTKEY2, ABS(CONVERT(INT, CONVERT(binary(4), NEWID()))) AS HOTKEY_ID FROM TBHOTKEY_USER_PROFILE WHERE USER_ID = " & CURRENT_USERID & " GROUP BY HOTKEY1, HOTKEY2", True) If DT.Rows.Count > 0 Then If LogErrorsOnly = False Then ClassLogger.Add(" >> " & DT.Rows.Count & " Hotkey-Profile", False) Dim i As Integer = 0 For Each row As DataRow In DT.Rows i += 1 Dim sql As String = "INSERT INTO TBHOTKEYTEMP_USER_HOTKEYS (HOTKEY_ID,HOTKEY1,HOTKEY2,[USER_ID]) VALUES (" & row.Item("HOTKEY_ID") & ", '" & row.Item("HOTKEY1") & "', '" & row.Item("HOTKEY2") & "', " & CURRENT_USERID & ")" ClassDatabase.Execute_non_Query(sql, True) Dim keyCode As Keys Try Dim kc As New KeysConverter Dim obj As Object = kc.ConvertFromString(row.Item("HOTKEY2").ToString.ToUpper) keyCode = CType(obj, Keys) Catch ex As Exception MsgBox("Error in Convert Key:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Exit Sub End Try Select Case row.Item("HOTKEY1") Case "Strg" If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Strg " & row.Item("HOTKEY2").ToString.ToUpper, False) HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_CONTROL, row.Item("HOTKEY_ID")) Case "Shift" If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Shift " & row.Item("HOTKEY2").ToString.ToUpper, False) HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_SHIFT, row.Item("HOTKEY_ID")) Case "Alt" If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Alt " & row.Item("HOTKEY2").ToString.ToUpper, False) HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_ALT, row.Item("HOTKEY_ID")) Case "win" If LogErrorsOnly = False Then ClassLogger.Add(" >>" & i.ToString + "|Win " & row.Item("HOTKEY2").ToString.ToUpper, False) HotKey.AddHotKey(keyCode, clsHotkey.MODKEY.MOD_WIN, row.Item("HOTKEY_ID")) End Select Next Else If LogErrorsOnly = False Then ClassLogger.Add(" >> Keine Hotkeys!", False) End If Catch ex As Exception MsgBox("Error in Load_Hotkeys:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub HotkeyEisntellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HotkeyEisntellungenToolStripMenuItem.Click Me.Hide() Unregister_Hotkeys() frmHotKey_Add.ShowDialog() Load_Hotkeys() Me.Visible = True End Sub Private Sub GlobalIndexerEinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GlobalIndexerEinstellungenToolStripMenuItem.Click Me.Hide() frmAdministration.ShowDialog() Me.Visible = True End Sub Private Sub GrundeinstellungenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GrundeinstellungenToolStripMenuItem.Click Me.TopMost = False frmConfig_Basic.ShowDialog() Me.TopMost = True End Sub Private Sub FrmHotkeyAddToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FrmHotkeyAddToolStripMenuItem.Click Me.TopMost = False Unregister_Hotkeys() frmHotkey_User.ShowDialog() Load_Hotkeys() Me.TopMost = True End Sub Private Sub TimerFolderWatch_Tick(sender As Object, e As EventArgs) Handles TimerFolderWatch.Tick Try If FW_started = True Then 'Prüfen ob alle Files abgearbeitet wurden Dim sql = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND HANDLE_TYPE like '%@FW%' AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')" DTACTUAL_FILES = ClassDatabase.Return_Datatable(sql, True) If DTACTUAL_FILES.Rows.Count > 0 Then ABORT_INDEXING = False ' Dim fil As String Me.TimerFolderWatch.Stop() For Each row As DataRow In DTACTUAL_FILES.Rows If ABORT_INDEXING = True Then Exit For End If Dim FileForWork As String = row.Item(1) If LogErrorsOnly = False Then ClassLogger.Add(">> In Timer Folderwatch - File: " & FileForWork, False) Dim fileInUse As Boolean = ClassFilehandle.IsFileInUse(FileForWork) Dim fileexists As Boolean = System.IO.File.Exists(FileForWork) If fileInUse = False Then If fileexists = True Then CURRENT_WORKFILE = FileForWork CURRENT_FILENAME = FileForWork CURRENT_WORKFILE_GUID = row.Item("GUID") Open_IndexDialog() Else ClassLogger.Add(">> Datei existiert (noch) nicht - fileexists?!", False) End If Else ClassLogger.Add(">> Datei '" & row.Item(1) & "' kann nicht exclusiv geöffnet werden - fileInUse!", False) End If Next Me.TimerFolderWatch.Start() End If tslblFW.Visible = True Else tslblFW.Visible = False End If Catch ex As Exception MsgBox("Error in Work FolderWatch-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub TimerClose3Minutes_Tick(sender As Object, e As EventArgs) Handles TimerClose3Minutes.Tick If License_Expired = True Or License_Anzahl < UserLoggedin Then MsgBox("Global Indexer wird nun geschlossen, weil keine neue Lizenzdaten eingegeben wurden!", MsgBoxStyle.Information) Me.Close() End If End Sub Private Sub frmStart_Shown(sender As Object, e As EventArgs) Handles Me.Shown If START_INCOMPLETE = True Then Me.Close() End If loaded = True Opacity = 0.65 TimerFolderWatch.Start() End Sub Private Sub HistoryIndexierteDateienToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HistoryIndexierteDateienToolStripMenuItem.Click frmHistory.ShowDialog() End Sub Private Sub InfoToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InfoToolStripMenuItem.Click AboutBox1.ShowDialog() End Sub End Class