997 lines
42 KiB
VB.net
997 lines
42 KiB
VB.net
Option Explicit On
|
|
|
|
Imports System.IO
|
|
Imports System.Runtime.InteropServices
|
|
Imports DevExpress.XtraSplashScreen
|
|
Imports DigitalData.GUIs.ClipboardWatcher
|
|
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
|
Imports DigitalData.GUIs.ZooFlow.ClipboardWatcher
|
|
Imports DigitalData.Modules
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Messaging
|
|
Imports DigitalData.Modules.Windows
|
|
|
|
Public Class frmFlowForm
|
|
' Constants
|
|
Private Const OPACITY_INITIAL = 0
|
|
Private Const OPACITY_HIDDEN = 0.65
|
|
Private Const OPACITY_SHOWN = 0.85
|
|
|
|
Private Logger As Logger
|
|
Private DTIDB_SEARCHES As DataTable
|
|
|
|
' Common Helpers Classes
|
|
Private Init As ClassInit
|
|
Private AppServerOrDB As ClassDataASorDB
|
|
Private FileClass As Filesystem.File
|
|
|
|
' Globix Helper Classes
|
|
Private FileDrop As ClassFileDrop
|
|
Private FileHandle As ClassFilehandle
|
|
Private FolderWatch As ClassFolderwatcher
|
|
|
|
' ClipboardWatcher Helper Classes
|
|
Private ClassWindow As Window
|
|
Private ProfileFilter As ProfileFilter
|
|
Private ProfileLoader As ClassProfileLoader
|
|
|
|
' Runtime Flags
|
|
Private ApplicationLoading As Boolean = True
|
|
Private IDBSearchActive As Boolean = False
|
|
|
|
' Runtime Variables
|
|
Private ESCHitCount As Integer = 0
|
|
Private IndexForm As frmGlobix_Index
|
|
Private Const mSnapOffset As Integer = 35
|
|
Private Const WM_WINDOWPOSCHANGING As Integer = &H46
|
|
|
|
' Events
|
|
Public Event ClipboardChanged As EventHandler(Of IDataObject)
|
|
Private WithEvents HotkeyClass As Hotkey
|
|
Private WithEvents Watcher As ClipboardWatcher.Watcher = ClipboardWatcher.Watcher.Singleton
|
|
|
|
Public Sub New()
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' === Hide form initially ===
|
|
Opacity = OPACITY_INITIAL
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
' === Initialize Logger ===
|
|
Logger = My.LogConfig.GetLogger()
|
|
|
|
' === Show Splash Screen ===
|
|
SplashScreenManager.ShowForm(Me, GetType(frmSplash), False, False)
|
|
|
|
' === Clean up logfiles ===
|
|
FileClass = New Filesystem.File(My.LogConfig)
|
|
FileClass.RemoveFiles(My.LogConfig.LogDirectory, 30, String.Empty, "log")
|
|
|
|
' === Initialize AppServer Database Connection with Failover
|
|
AppServerOrDB = New ClassDataASorDB(My.LogConfig)
|
|
|
|
' === Initialization ===
|
|
Init = New ClassInit(My.LogConfig, Me)
|
|
AddHandler Init.Completed, AddressOf Init_Completed
|
|
Init.InitializeApplication()
|
|
End Sub
|
|
Protected Overrides Sub WndProc(ByRef m As Message)
|
|
' Listen for operating system messages
|
|
Select Case m.Msg
|
|
Case WM_WINDOWPOSCHANGING
|
|
SnapToDesktopBorder(Me, m.LParam, 0)
|
|
End Select
|
|
|
|
MyBase.WndProc(m)
|
|
End Sub
|
|
Public Shared Sub SnapToDesktopBorder(ByVal clientForm As Form, ByVal LParam As IntPtr, ByVal widthAdjustment As Integer)
|
|
If clientForm Is Nothing Then
|
|
' Satisfies rule: Validate parameters
|
|
Throw New ArgumentNullException("clientForm")
|
|
End If
|
|
|
|
' Snap client to the top, left, bottom or right desktop border
|
|
' as the form is moved near that border.
|
|
|
|
Try
|
|
' Marshal the LPARAM value which is a WINDOWPOS struct
|
|
Dim NewPosition As New ClassWin32.WINDOWPOS
|
|
NewPosition = CType(Marshal.PtrToStructure(
|
|
LParam, GetType(ClassWin32.WINDOWPOS)), ClassWin32.WINDOWPOS)
|
|
|
|
If NewPosition.y = 0 OrElse NewPosition.x = 0 Then
|
|
Return ' Nothing to do!
|
|
End If
|
|
|
|
' Adjust the client size for borders and caption bar
|
|
Dim ClientRect As Rectangle =
|
|
clientForm.RectangleToScreen(clientForm.ClientRectangle)
|
|
ClientRect.Width +=
|
|
SystemInformation.FrameBorderSize.Width - widthAdjustment
|
|
ClientRect.Height += (SystemInformation.FrameBorderSize.Height +
|
|
SystemInformation.CaptionHeight)
|
|
|
|
' Now get the screen working area (without taskbar)
|
|
Dim WorkingRect As Rectangle =
|
|
Screen.GetWorkingArea(clientForm.ClientRectangle)
|
|
|
|
' Left border
|
|
If NewPosition.x >= WorkingRect.X - mSnapOffset AndAlso
|
|
NewPosition.x <= WorkingRect.X + mSnapOffset Then
|
|
NewPosition.x = WorkingRect.X
|
|
End If
|
|
|
|
' Get screen bounds and taskbar height
|
|
' (when taskbar is horizontal)
|
|
Dim ScreenRect As Rectangle =
|
|
Screen.GetBounds(Screen.PrimaryScreen.Bounds)
|
|
Dim TaskbarHeight As Integer =
|
|
ScreenRect.Height - WorkingRect.Height
|
|
|
|
' Top border (check if taskbar is on top
|
|
' or bottom via WorkingRect.Y)
|
|
If NewPosition.y >= -mSnapOffset AndAlso
|
|
(WorkingRect.Y > 0 AndAlso NewPosition.y <=
|
|
(TaskbarHeight + mSnapOffset)) OrElse
|
|
(WorkingRect.Y <= 0 AndAlso NewPosition.y <=
|
|
(mSnapOffset)) Then
|
|
If TaskbarHeight > 0 Then
|
|
NewPosition.y = WorkingRect.Y ' Horizontal Taskbar
|
|
Else
|
|
NewPosition.y = 0 ' Vertical Taskbar
|
|
End If
|
|
End If
|
|
|
|
' Right border
|
|
If NewPosition.x + ClientRect.Width <=
|
|
WorkingRect.Right + mSnapOffset AndAlso
|
|
NewPosition.x + ClientRect.Width >=
|
|
WorkingRect.Right - mSnapOffset Then
|
|
NewPosition.x = WorkingRect.Right - (ClientRect.Width +
|
|
SystemInformation.FrameBorderSize.Width)
|
|
End If
|
|
|
|
' Bottom border
|
|
If NewPosition.y + ClientRect.Height <=
|
|
WorkingRect.Bottom + mSnapOffset AndAlso
|
|
NewPosition.y + ClientRect.Height >=
|
|
WorkingRect.Bottom - mSnapOffset Then
|
|
NewPosition.y = WorkingRect.Bottom - (ClientRect.Height +
|
|
SystemInformation.FrameBorderSize.Height)
|
|
End If
|
|
|
|
' Marshal it back
|
|
Marshal.StructureToPtr(NewPosition, LParam, True)
|
|
Catch ex As ArgumentException
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub Init_Completed(sender As Object, e As EventArgs)
|
|
Me.Cursor = Cursors.WaitCursor
|
|
' === Initialization Complete ===
|
|
ApplicationLoading = False
|
|
SplashScreenManager.CloseForm(False)
|
|
|
|
' === Setup Timers ===
|
|
AddHandler TimerRefreshData.Tick, AddressOf TimerRefreshData_Tick
|
|
TimerRefreshData.Enabled = True
|
|
|
|
' === Register As Event Listener ===
|
|
EventBus.Instance.Register(Me)
|
|
|
|
' === Set Form Properties ===
|
|
TopMost = True
|
|
AllowDrop = True
|
|
ShowInTaskbar = False
|
|
Opacity = OPACITY_HIDDEN
|
|
Location = My.UIConfig.FlowForm.Location
|
|
|
|
' === Setup Event Handlers ===
|
|
AddHandler KeyDown, AddressOf frmFlowForm_KeyDown
|
|
AddHandler KeyUp, AddressOf frmFlowForm_KeyDown
|
|
|
|
For Each oControl As Control In Controls
|
|
AddHandler oControl.MouseEnter, AddressOf frmFlowForm_MouseEnter
|
|
AddHandler oControl.MouseLeave, AddressOf frmFlowForm_MouseLeave
|
|
Next
|
|
|
|
AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
|
|
|
|
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
|
|
Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
|
|
PictureBoxSearch.Visible = False
|
|
|
|
If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then
|
|
IDBSearchActive = True
|
|
DTIDB_SEARCHES = oDatatable
|
|
PictureBoxSearch.Visible = True
|
|
End If
|
|
|
|
If My.Application.ModulesActive.Contains(MODULE_CLIPBOARDWATCHER) Then
|
|
Try
|
|
ClassWindow = New Window(My.LogConfig)
|
|
HotkeyClass = New Hotkey(Me)
|
|
|
|
'Add Toggle Hotkey
|
|
HotkeyClass.AddHotKey(Keys.T, Hotkey.ModfierKey.MOD_CONTROL, HOTKEY_TOGGLE_WATCHER)
|
|
|
|
' Add Trigger Hotkey
|
|
|
|
'TODO: Configure Hotkey
|
|
Dim oSearchKey As String = "D"
|
|
Dim oFunctionKey As String = "CTRL"
|
|
|
|
Dim oConverter As New KeysConverter
|
|
Dim oObject As Object = oConverter.ConvertFromString(oSearchKey)
|
|
Dim oKeyCode As Keys = oObject
|
|
|
|
Select Case oFunctionKey
|
|
Case "CTRL"
|
|
HotkeyClass.AddHotKey(oKeyCode, Hotkey.ModfierKey.MOD_CONTROL, ClassConstants.HOTKEY_TRIGGER_WATCHER)
|
|
Case "SHIFT"
|
|
HotkeyClass.AddHotKey(oKeyCode, Hotkey.ModfierKey.MOD_SHIFT, ClassConstants.HOTKEY_TRIGGER_WATCHER)
|
|
Case "ALT"
|
|
HotkeyClass.AddHotKey(oKeyCode, Hotkey.ModfierKey.MOD_ALT, ClassConstants.HOTKEY_TRIGGER_WATCHER)
|
|
Case "WIN"
|
|
HotkeyClass.AddHotKey(oKeyCode, Hotkey.ModfierKey.MOD_WIN, ClassConstants.HOTKEY_TRIGGER_WATCHER)
|
|
End Select
|
|
|
|
AddHandler HotkeyClass.HotKeyPressed, AddressOf HotkeyClass_HotKeyPressed
|
|
|
|
ProfileLoader = New ClassProfileLoader(My.LogConfig, AppServerOrDB)
|
|
ProfileLoader.LoadProfiles()
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox("Error while initializing Clipboard Watcher!", MsgBoxStyle.Critical, Text)
|
|
End Try
|
|
Else
|
|
My.Application.ClipboardWatcher.MonitoringActive = False
|
|
Logger.Info("Clipboard Watcher Module is not active. Hotkey Monitoring will be disabled!")
|
|
End If
|
|
|
|
If My.Application.ModulesActive.Contains(MODULE_GLOBAL_INDEXER) Then
|
|
FileDrop = New ClassFileDrop(My.LogConfig)
|
|
FileHandle = New ClassFilehandle()
|
|
FolderWatch = New ClassFolderwatcher
|
|
Refresh_RegexTable()
|
|
If My.Application.Globix.LoadFileExclusion = False Then
|
|
If My.Application.User.Language = "de-DE" Then
|
|
MsgBox("Die Ausschlusskriterien für Dateien in Folderwatch konnten nicht angelegt werden!", MsgBoxStyle.Information)
|
|
Else
|
|
MsgBox("File-Exclusions in Folderwatch could not be created!", MsgBoxStyle.Information)
|
|
End If
|
|
|
|
End If
|
|
My.Application.Globix.LoadFileExclusion()
|
|
Init_Folderwatch()
|
|
Start_Folderwatch()
|
|
GlobixToolStripMenuItem.Visible = True
|
|
|
|
End If
|
|
oSQL = "SELECT * FROM TBIDB_ATTRIBUTE"
|
|
|
|
My.DTAttributes = AppServerOrDB.GetDatatable("IDB", oSQL, "TBIDB_ATTRIBUTE", "", "")
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Public Sub Init_Folderwatch()
|
|
Try
|
|
Dim oSql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & My.Application.User.UserId
|
|
|
|
Dim oDT As DataTable = AppServerOrDB.GetDatatable("DD_ECM", oSql, "TBGI_FOLDERWATCH_USER", $"FOLDER_TYPE = 'DEFAULT' AND USER_ID = {My.Application.User.UserId}")
|
|
|
|
If oDT.Rows.Count = 0 Then
|
|
Throw New ApplicationException("No Default Path configured for User!")
|
|
End If
|
|
|
|
Dim oFolderWatchPath = oDT.Rows.Item(0).Item("FOLDER_PATH")
|
|
oFolderWatchPath = NotNull(oFolderWatchPath, String.Empty).ToString
|
|
|
|
If oFolderWatchPath = String.Empty Then
|
|
Logger.Info("Init_Folderwatch: folderwatchPath is empty")
|
|
My.Application.Globix.Folderwatchstarted = False
|
|
'SaveConfigValue("my.Application.Globix.Folderwatchstarted", "False")
|
|
My.UIConfig.Globix.FolderWatchStarted = False
|
|
My.UIConfigManager.Save()
|
|
|
|
End If
|
|
|
|
If Not IO.Directory.Exists(oFolderWatchPath) Then
|
|
Logger.Info("Init_Folderwatch: folderwatchPath does not exists or is invalid path")
|
|
My.Application.Globix.Folderwatchstarted = False
|
|
'SaveConfigValue("my.Application.Globix.Folderwatchstarted", "False")
|
|
My.UIConfig.Globix.FolderWatchStarted = False
|
|
My.UIConfigManager.Save()
|
|
|
|
End If
|
|
|
|
My.Application.Globix.CurrentFolderWatchPath = oFolderWatchPath
|
|
My.Application.Globix.Folderwatchstarted = True
|
|
'FWFunction_STARTED = True
|
|
FolderWatch.StartStop_FolderWatch()
|
|
Catch ex As Exception
|
|
MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatch: {ex.Message}", MsgBoxStyle.Critical)
|
|
Logger.Error(ex)
|
|
Logger.Info($"Init_Folderwatch: Unexpected error: {ex.Message}")
|
|
End Try
|
|
|
|
Try
|
|
Dim oSql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & My.Application.User.UserId
|
|
Dim oFolderwatchScanPath = My.Database.GetScalarValue(oSql)
|
|
|
|
oFolderwatchScanPath = IIf(IsDBNull(oFolderwatchScanPath), "", oFolderwatchScanPath)
|
|
|
|
If oFolderwatchScanPath = String.Empty Then
|
|
Logger.Info("Init_Folderwatch: folderwatchScanPath is empty")
|
|
My.UIConfig.Globix.FolderWatchStarted = False
|
|
My.UIConfigManager.Save()
|
|
Exit Sub
|
|
End If
|
|
|
|
If Not IO.Directory.Exists(oFolderwatchScanPath) Then
|
|
Logger.Info("Init_Folderwatch: folderwatchScanPath does not exists or is invalid path")
|
|
My.UIConfig.Globix.FolderWatchStarted = False
|
|
My.UIConfigManager.Save()
|
|
Exit Sub
|
|
End If
|
|
|
|
My.Application.Globix.CURRENT_SCAN_FOLDERWATCH = oFolderwatchScanPath
|
|
|
|
|
|
'FWFunction_STARTED = True
|
|
FolderWatch.StartStop_FolderWatchSCAN()
|
|
Catch ex As Exception
|
|
MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatchScan: {ex.Message}", MsgBoxStyle.Critical)
|
|
Logger.Info($"Init_Folderwatch: Unexpected error: {ex.Message}")
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs)
|
|
'TODO: Refresh Data
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
|
|
Opacity = OPACITY_HIDDEN
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
|
|
Opacity = OPACITY_SHOWN
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove
|
|
If e.Button = MouseButtons.Left Then
|
|
ClassWin32.ReleaseCapture()
|
|
ClassWin32.SendMessage(Handle, ClassWin32.WM_NCLBUTTONDOWN, ClassWin32.HTCAPTION, 0)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
|
|
If e.KeyCode = Keys.Escape Then
|
|
If ESCHitCount > 0 Then
|
|
ExitZooflow()
|
|
Else
|
|
ESCHitCount += 1
|
|
End If
|
|
ElseIf e.KeyCode = Keys.D AndAlso (e.Control) Then
|
|
If My.Application.ModulesActive.Contains(ClassConstants.MODULE_ZOOFLOW) Then
|
|
MsgBox("Search")
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub ExitZooflow()
|
|
Dim oResult As DialogResult = MessageBox.Show("Exit Zooflow", "Are you sure you want to close ZooFlow", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
If oResult = DialogResult.Yes Then
|
|
Application.Exit()
|
|
Else
|
|
ESCHitCount = 0
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub OnEvent(Params As Object)
|
|
Logger.Debug("OnEvent called!")
|
|
End Sub
|
|
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
|
|
|
|
Open_FlowSearch()
|
|
End Sub
|
|
Sub Open_FlowSearch()
|
|
Cursor = Cursors.WaitCursor
|
|
If TheFormIsAlreadyLoaded("frmFlowSearch") Then
|
|
Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim oSQLFlowSearch As String = ""
|
|
For Each oRow As DataRow In My.DTCOMMON_SQL.Rows
|
|
If oRow.Item("TITLE") = SQLCMD_FLOW_SEARCH_LOWER_LIMIT Then
|
|
oSQLFlowSearch = oRow.Item("SQL_COMMAND")
|
|
End If
|
|
Next
|
|
If oSQLFlowSearch <> String.Empty Then
|
|
oSQLFlowSearch = oSQLFlowSearch.Replace("@USER_ID", My.Application.User.UserId)
|
|
oSQLFlowSearch = oSQLFlowSearch.Replace("@LANGUAGE_ID", My.Application.User.LanguageID)
|
|
oSQLFlowSearch = oSQLFlowSearch.Replace("@LANGUAGE", My.Application.User.Language)
|
|
Dim oForm As New frmFlowSearch(oSQLFlowSearch)
|
|
oForm.Show()
|
|
oForm.BringToFront()
|
|
End If
|
|
|
|
Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub PictureBoxSearch_Click(sender As Object, e As EventArgs) Handles PictureBoxSearch.Click
|
|
Open_FlowSearch()
|
|
'Cursor = Cursors.WaitCursor
|
|
'If TheFormIsAlreadyLoaded("frmSearchStart") Then
|
|
' Cursor = Cursors.Default
|
|
' Exit Sub
|
|
'End If
|
|
|
|
|
|
'Dim oForm As New frmSearchStart(DTIDB_SEARCHES) 'frmFlowSearch(osql)
|
|
'oForm.Show()
|
|
'Cursor = Cursors.Default
|
|
'If TimerCheckActiveForms.Enabled = False Then
|
|
' TimerCheckActiveForms.Enabled = True
|
|
'End If
|
|
End Sub
|
|
Private Sub PictureBoxSearch_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxSearch.MouseEnter
|
|
PictureBoxSearch.Image = My.Resources._2_LUPE_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxSearch_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxSearch.MouseLeave
|
|
PictureBoxSearch.Image = My.Resources._2_LUPE_INAKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxPM_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxPM.MouseEnter
|
|
PictureBoxPM.Image = My.Resources._3_PERSON_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxPM_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxPM.MouseLeave
|
|
PictureBoxPM.Image = My.Resources._3_PERSON_INAKTIV_ZOO
|
|
End Sub
|
|
|
|
Private Sub PictureBoxGlobix_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxGlobix.MouseEnter
|
|
PictureBoxGlobix.Image = My.Resources._4_GLOBIX_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxGlobix_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxGlobix.MouseLeave
|
|
PictureBoxGlobix.Image = My.Resources._4_GLOBIX_INAKTIV_ZOO
|
|
End Sub
|
|
Private Sub ZooFlowBeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZooFlowBeendenToolStripMenuItem.Click
|
|
ExitZooflow()
|
|
End Sub
|
|
|
|
Private Sub VerwaltungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VerwaltungToolStripMenuItem.Click
|
|
frmAdmin_Start.Show()
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragEnter(sender As Object, e As DragEventArgs) Handles MyBase.DragEnter
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW_DROP3
|
|
|
|
e.Effect = DragDropEffects.Copy
|
|
Drag_Enter(sender, e)
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop
|
|
DragDropForm(e)
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragLeave(sender As Object, e As EventArgs) Handles Me.DragLeave
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW1
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxAbo.MouseEnter
|
|
PictureBoxAbo.Image = My.Resources._2_ZOO_FLOW_Abo_MouseOver
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxAbo.MouseLeave
|
|
PictureBoxAbo.Image = My.Resources._2_ZOO_FLOW_Abo
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_Click(sender As Object, e As EventArgs) Handles PictureBoxAbo.Click
|
|
Cursor = Cursors.WaitCursor
|
|
If TheFormIsAlreadyLoaded("frmPreSearch") Then
|
|
Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim oForm2 As New frmSearchPredefined()
|
|
oForm2.Show()
|
|
Cursor = Cursors.Default
|
|
End Sub
|
|
Private Function TheFormIsAlreadyLoaded(ByVal pFormName As String) As Boolean
|
|
|
|
TheFormIsAlreadyLoaded = False
|
|
|
|
For Each frm As Form In Application.OpenForms
|
|
If frm.Name.Equals(pFormName) Then
|
|
TheFormIsAlreadyLoaded = True
|
|
Exit Function
|
|
End If
|
|
Next
|
|
|
|
End Function
|
|
Private Function FormLoaded_Visible() As Boolean
|
|
For Each frm As Form In Application.OpenForms
|
|
If frm.Name.Equals("frmSearchStart") Or frm.Name.Equals("frmGlobix_Index") Then
|
|
Me.Visible = False
|
|
Exit Function
|
|
End If
|
|
Next
|
|
Me.Visible = True
|
|
TimerCheckActiveForms.Enabled = False
|
|
End Function
|
|
|
|
Private Sub DatenbankverbindungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DatenbankverbindungToolStripMenuItem.Click
|
|
frmConfigDatabase.ShowDialog()
|
|
End Sub
|
|
|
|
Private Sub TimerCheckActiveForms_Tick(sender As Object, e As EventArgs) Handles TimerCheckActiveForms.Tick
|
|
FormLoaded_Visible()
|
|
If Me.Visible = False Then Exit Sub
|
|
End Sub
|
|
|
|
Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick
|
|
If Me.Visible = False Then
|
|
Me.Visible = True
|
|
TimerCheckActiveForms.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.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 DragDropForm(e As DragEventArgs)
|
|
If Not My.Application.ModulesActive.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
|
|
Exit Sub
|
|
End If
|
|
If TheFormIsAlreadyLoaded("frmIndexFileList") Then
|
|
Cursor = Cursors.Default
|
|
MsgBox("Please index the active file first!", MsgBoxStyle.Exclamation, "Drag 'n Drop not allowed!")
|
|
Exit Sub
|
|
End If
|
|
|
|
'Erstmal alles löschen
|
|
My.Database.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
|
|
If FileDrop.Drop_File(e) = True Then
|
|
TimerCheckDroppedFiles.Start()
|
|
Me.Cursor = Cursors.WaitCursor
|
|
End If
|
|
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW1
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_DragDrop(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragDrop
|
|
DragDropForm(e)
|
|
End Sub
|
|
|
|
Private Sub TimerCheckDroppedFiles_Tick(sender As Object, e As EventArgs) Handles TimerCheckDroppedFiles.Tick
|
|
If Not My.Application.ModulesActive.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
|
|
Exit Sub
|
|
End If
|
|
|
|
TimerCheckDroppedFiles.Stop()
|
|
Globix_Check_Dropped_Files()
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
Sub Globix_Check_Dropped_Files()
|
|
Try
|
|
My.Database.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
Dim i As Integer
|
|
|
|
For Each Str As Object In FileDrop.files_dropped
|
|
If Not Str Is Nothing Then
|
|
Logger.Info(" Check Drop-File: " & Str.ToString)
|
|
Dim handleType As String = Str.Substring(0, Str.LastIndexOf("|") + 1)
|
|
Dim filename As String = Str.Substring(Str.LastIndexOf("|") + 1)
|
|
If My.Application.Globix.FileExistsinDropTable(filename) = False Then
|
|
FileHandle.Decide_FileHandle(filename, handleType)
|
|
i += 1
|
|
Else
|
|
' Console.WriteLine("File gibt es bereits")
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
Dim sql As String = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
|
|
My.Application.Globix.DTACTUAL_FILES = Nothing
|
|
My.Application.Globix.DTACTUAL_FILES = My.Database.GetDatatable(sql)
|
|
My.Application.Globix.ABORT_INDEXING = False
|
|
|
|
Dim oOnlyFilesFromFilesystem = True
|
|
For Each oRow As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
|
|
If oRow.Item("HANDLE_TYPE").ToString <> "|DROPFROMFSYSTEM|" Then
|
|
oOnlyFilesFromFilesystem = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If My.Application.Globix.DTACTUAL_FILES.Rows.Count > 1 And oOnlyFilesFromFilesystem = False Then
|
|
frmGlobix_IndexFileList.ShowDialog()
|
|
My.Application.Globix.DTACTUAL_FILES = Nothing
|
|
My.Application.Globix.DTACTUAL_FILES = My.Database.GetDatatable(sql)
|
|
End If
|
|
|
|
For Each oFileRow As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
|
|
Dim filestring As String = oFileRow.Item("FILENAME2WORK").ToString
|
|
My.Application.Globix.CURRENT_FILENAME = oFileRow.Item("FILENAME2WORK").ToString
|
|
My.Application.Globix.CURRENT_WORKFILE_GUID = oFileRow.Item(0)
|
|
My.Application.Globix.CURRENT_WORKFILE = oFileRow.Item("FILENAME2WORK").ToString
|
|
Logger.Info(" CURRENT_WORKFILE: " & My.Application.Globix.CURRENT_WORKFILE)
|
|
If IO.File.Exists(My.Application.Globix.CURRENT_WORKFILE) = True And My.Application.Globix.DTACTUAL_FILES.Rows.Count > 0 Then
|
|
Globix_Open_IndexDialog()
|
|
End If
|
|
Next
|
|
Show()
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Check_Dropped_Files:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Show()
|
|
End Try
|
|
|
|
End Sub
|
|
Sub Globix_Open_IndexDialog()
|
|
Try
|
|
IndexForm = New frmGlobix_Index(My.LogConfig)
|
|
NotifyIconReset()
|
|
AddHandler IndexForm.FormClosed, AddressOf GlobixClosed
|
|
IndexForm.Show()
|
|
Cursor = Cursors.Default
|
|
If TimerCheckActiveForms.Enabled = False Then
|
|
TimerCheckActiveForms.Enabled = True
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Sub NotifyIconReset()
|
|
NI_TYPE = "INFO"
|
|
NI_MESSAGE = String.Empty
|
|
End Sub
|
|
Sub GlobixClosed()
|
|
Try
|
|
If NI_MESSAGE = String.Empty Then
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim oNIType = 1
|
|
Select Case NI_TYPE
|
|
Case "INFO"
|
|
oNIType = 1
|
|
Case "ERROR"
|
|
oNIType = 3
|
|
End Select
|
|
NotifyIcon.ShowBalloonTip(30000, NI_TITLE, NI_MESSAGE, oNIType)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End Sub
|
|
Sub Start_Folderwatch()
|
|
If My.Application.Globix.CurrentFolderWatchPath = String.Empty Then
|
|
My.Application.Globix.Folderwatchstarted = False
|
|
End If
|
|
|
|
If My.Application.Globix.CURRENT_SCAN_FOLDERWATCH = String.Empty Then
|
|
My.UIConfigManager.Config.Globix.FolderWatchScanStarted = False
|
|
My.UIConfigManager.Save()
|
|
End If
|
|
|
|
If My.Application.Globix.CurrentFolderWatchPath <> "" Or My.Application.Globix.CURRENT_SCAN_FOLDERWATCH <> "" Then
|
|
'If My.Application.Globix.Folderwatchstarted = True Then
|
|
' tslblFW.Visible = True
|
|
'Else
|
|
' tslblFW.Visible = False
|
|
'End If
|
|
|
|
Try
|
|
If My.UIConfigManager.Config.Globix.FolderWatchScanStarted = True Then
|
|
Logger.Info("FWSCAN started - Checking file:" & My.Application.Globix.CURRENT_SCAN_FOLDERWATCH)
|
|
Dim fileEntries As String() = Directory.GetFiles(My.Application.Globix.CURRENT_SCAN_FOLDERWATCH)
|
|
' Process the list of files found in the directory.
|
|
Dim fileName As String
|
|
For Each fileName In fileEntries
|
|
Logger.Info("Scanfolder after startup: Checking file:" & fileName)
|
|
For Each row As DataRow In My.Application.Globix.DTEXCLUDE_FILES.Rows
|
|
Dim content As String = row.Item(0).ToString.ToLower
|
|
If fileName.ToLower.Contains(content) Then
|
|
Exit Sub
|
|
End If
|
|
Next
|
|
Dim handleType As String
|
|
If fileName.ToLower.EndsWith(".msg") Then
|
|
handleType = "|FW_OUTLOOK_MESSAGE|"
|
|
Else
|
|
handleType = "|FW_SIMPLEINDEXER|"
|
|
End If
|
|
'Die Datei übergeben
|
|
Logger.Info(" Adding file from Scanfolder after startup:" & fileName)
|
|
If My.Application.Globix.FileExistsinDropTable(fileName) = False Then
|
|
FileHandle.Decide_FileHandle(fileName, handleType)
|
|
Else
|
|
Logger.Info("Scanfolder Startup: File already exists:" & fileName)
|
|
End If
|
|
Next fileName
|
|
|
|
Else
|
|
Logger.Info("FWSCAN not started")
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Info("Error while starting folderwatch scan: " & ex.Message)
|
|
Logger.Error(ex.Message)
|
|
End Try
|
|
|
|
Try
|
|
If My.Application.Globix.Folderwatchstarted = True Then
|
|
Logger.Info("Folderwatchstarted - Checking file:" & My.Application.Globix.CurrentFolderWatchPath)
|
|
Dim fileEntries As String() = Directory.GetFiles(My.Application.Globix.CurrentFolderWatchPath)
|
|
' Process the list of files found in the directory.
|
|
Dim fileName As String
|
|
For Each fileName In fileEntries
|
|
Logger.Info("Folderwach after startup: Checking file:" & fileName)
|
|
For Each row As DataRow In My.Application.Globix.DTEXCLUDE_FILES.Rows
|
|
Dim content As String = row.Item(0).ToString.ToLower
|
|
If fileName.ToLower.Contains(content) Then
|
|
Exit Sub
|
|
End If
|
|
Next
|
|
Dim handleType As String
|
|
If fileName.ToLower.EndsWith(".msg") Then
|
|
handleType = "|FW_OUTLOOK_MESSAGE|"
|
|
Else
|
|
handleType = "|FW_SIMPLEINDEXER|"
|
|
End If
|
|
'Die Datei übergeben
|
|
Logger.Info("Adding file from Folderwatch after startup:" & fileName)
|
|
If My.Application.Globix.FileExistsinDropTable(fileName) = False Then
|
|
FileHandle.Decide_FileHandle(fileName, handleType)
|
|
Else
|
|
Logger.Info("Folderwatch Startup: File already exists:" & fileName)
|
|
End If
|
|
Next fileName
|
|
|
|
Else
|
|
Logger.Info("Folderwatch not started")
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Info("Error while starting folderwatch: " & ex.Message)
|
|
Logger.Error(ex.Message)
|
|
End Try
|
|
|
|
If TimerFolderwatch.Enabled = False Then
|
|
TimerFolderwatch.Start()
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub frmFlowForm_ResizeEnd(sender As Object, e As EventArgs) Handles Me.ResizeEnd
|
|
My.UIConfig.FlowForm.Location = Location
|
|
My.UIConfigManager.Save()
|
|
End Sub
|
|
|
|
Private Sub TimerFolderwatch_Tick_1(sender As Object, e As EventArgs) Handles TimerFolderwatch.Tick
|
|
|
|
Try
|
|
' JenneJ, 11.02.2019:
|
|
' Keine Folderwatch Dateien verarbeiten, wenn gerade Indexiert wird,
|
|
' dadurch würden die Globalen Variablen überschrieben
|
|
' und in Folge die falschen Dateien Indexiert!
|
|
If My.Application.Globix.INDEXING_ACTIVE Or My.Application.Globix.MULTIINDEXING_ACTIVE Then
|
|
Exit Sub
|
|
End If
|
|
|
|
If My.Application.Globix.Folderwatchstarted = True Or My.UIConfig.Globix.FolderWatchScanStarted = 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 & "')"
|
|
My.Application.Globix.DTACTUAL_FILES = My.Database.GetDatatable(sql)
|
|
|
|
If My.Application.Globix.DTACTUAL_FILES.Rows.Count > 0 Then
|
|
My.Application.Globix.ABORT_INDEXING = False
|
|
' Dim fil As String
|
|
Me.TimerFolderwatch.Stop()
|
|
For Each row As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
|
|
Dim FILEGUID = row.Item("GUID")
|
|
If My.Application.Globix.ABORT_INDEXING = True Then
|
|
Exit For
|
|
End If
|
|
Dim FileForWork As String = row.Item(1)
|
|
Logger.Info(" In Timer Folderwatch - File: " & FileForWork)
|
|
Dim fileInUse As Boolean = FileHandle.IsFileInUse(FileForWork)
|
|
Dim fileexists As Boolean = System.IO.File.Exists(FileForWork)
|
|
If fileInUse = False Then
|
|
If fileexists = True Then
|
|
My.Application.Globix.CURRENT_WORKFILE = FileForWork
|
|
My.Application.Globix.CURRENT_FILENAME = FileForWork
|
|
My.Application.Globix.CURRENT_WORKFILE_GUID = row.Item("GUID")
|
|
Globix_Open_IndexDialog()
|
|
Else
|
|
Logger.Info(" File not existing - Row will be deleted!")
|
|
Dim oDel = String.Format("DELETE FROM TBGI_FILES_USER WHERE GUID = {0}", FILEGUID)
|
|
My.Database.ExecuteNonQuery(oDel)
|
|
End If
|
|
Else
|
|
Logger.Info(" file '" & row.Item(1) & "' could not be opened exclusively - fileInUse!")
|
|
End If
|
|
|
|
Next
|
|
Me.TimerFolderwatch.Start()
|
|
End If
|
|
'tslblFW.Visible = True
|
|
Else
|
|
'tslblFW.Visible = False
|
|
End If
|
|
Catch ex As Exception
|
|
If ex.Message.Contains("Sammlung wurde geändert") Or ex.Message.Contains("Enumeration") Then
|
|
|
|
Else
|
|
MsgBox("Error in Work FolderWatch-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End If
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub TsiGlobixConfig_Click(sender As Object, e As EventArgs) Handles TsiGlobixConfig.Click
|
|
frmGlobixBasicConfig.ShowDialog()
|
|
End Sub
|
|
|
|
Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject)
|
|
Dim ClipboardContents As String = Clipboard.GetText().Trim()
|
|
Dim oState = My.Application.ClipboardWatcher
|
|
|
|
oState.CurrentClipboardContents = ClipboardContents
|
|
|
|
If oState.MonitoringActive = False Then
|
|
Logger.Info("Clipboard Watcher is not active!")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.UserProfiles Is Nothing Then
|
|
Logger.Warn("User Profiles is empty!")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.ProfileProcesses Is Nothing OrElse oState.ProfileProcesses.Rows.Count = 0 Then
|
|
Logger.Warn("Profile Processes is empty!")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.ProfileWindows Is Nothing OrElse oState.ProfileWindows.Rows.Count = 0 Then
|
|
Logger.Warn("Profile Processes is empty!")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.ProfileProcesses Is Nothing OrElse oState.ProfileProcesses.Rows.Count = 0 Then
|
|
Logger.Warn("Profile Processes is empty!")
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim oWindowInfo = ClassWindow.GetWindowInfo()
|
|
|
|
Try
|
|
' Tree View zurücksetzen
|
|
oState.MatchTreeView.Nodes.Clear()
|
|
|
|
ProfileFilter = New ProfileFilter(My.LogConfig,
|
|
oState.UserProfiles, oState.ProfileProcesses,
|
|
oState.ProfileWindows, oState.ProfileControls,
|
|
oState.MatchTreeView)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox("Fehler beim Laden der Profile. Möglicherweise liegt ein Konfigurationsfehler vor. Mehr Informationen im Log.", MsgBoxStyle.Critical, Text)
|
|
End Try
|
|
|
|
Try
|
|
Dim oProfiles = ProfileFilter.Profiles
|
|
Dim oEnvironment = ClassEnvironment.GetEnvironment()
|
|
|
|
' Filter by Clipboard Contents
|
|
oProfiles = ProfileFilter.FilterProfilesByClipboardRegex(oProfiles, ClipboardContents)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "FilterProfilesByClipboardRegex")
|
|
|
|
' Filter by Process Name
|
|
oProfiles = ProfileFilter.FilterProfilesByProcess(oProfiles, oWindowInfo.ProcessName)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "FilterProfilesByProcess")
|
|
|
|
' Filter by Window Title
|
|
oProfiles = ProfileFilter.FilterWindowsByWindowTitleRegex(oProfiles, oWindowInfo.WindowTitle)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "FilterWindowsByWindowTitleRegex")
|
|
|
|
' Filter by Focused Control
|
|
oProfiles = ProfileFilter.FilterProfilesByFocusedControl(oProfiles, ClipboardContents, Handle)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "FilterProfilesByFocusedControl")
|
|
oState.CurrentMatchingProfiles = oProfiles.ToList()
|
|
|
|
' Filter by Search Results
|
|
oProfiles = ProfileFilter.FilterProfilesBySearchResults(oProfiles, oEnvironment.Database, oEnvironment.User, ClipboardContents)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "FilterProfilesBySearchResults")
|
|
|
|
' Clean up Profiles
|
|
oProfiles = ProfileFilter.ClearNotMatchedProfiles(oProfiles)
|
|
oProfiles = ProfileFilter.ClearDuplicateProfiles(oProfiles)
|
|
oProfiles = ProfileFilter.LogRemainingProfiles(oProfiles, "CleanUp")
|
|
|
|
oState.CurrentProfilesWithResults = oProfiles.ToList()
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox("Fehler beim Auswerten der Profile. Mehr Informationen im Log.", MsgBoxStyle.Critical, Text)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub HotkeyClass_HotKeyPressed(HotKeyID As String)
|
|
Dim oState = My.Application.ClipboardWatcher
|
|
|
|
Select Case HotKeyID
|
|
Case HOTKEY_TRIGGER_WATCHER
|
|
If oState.CurrentClipboardContents = String.Empty Then
|
|
Logger.Info("Current Clipboard Contents is empty. Exiting.")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.MonitoringActive = False Then
|
|
Logger.Info("Monitoring is inactive. Exiting.")
|
|
Exit Sub
|
|
End If
|
|
|
|
If oState.UserProfiles.Rows.Count = 0 Then
|
|
NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Es wurden keine Profile für Sie gefunden.", ToolTipIcon.Warning)
|
|
|
|
ElseIf oState.CurrentMatchingProfiles.Count = 0 Then
|
|
NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Es wurden keine passenden Profile gefunden.", ToolTipIcon.Warning)
|
|
|
|
ElseIf oState.CurrentProfilesWithResults.Count = 0 Then
|
|
NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Es wurden weder Dokumente noch Daten gefunden!", ToolTipIcon.Warning)
|
|
|
|
Else
|
|
Dim oProfiles = oState.CurrentProfilesWithResults
|
|
Dim oEnvironment = My.Application.GetEnvironment()
|
|
Dim oParams As New DigitalData.Modules.ZooFlow.ClipboardWatcherParams With {
|
|
.ClipboardContents = oState.CurrentClipboardContents,
|
|
.MatchingProfiles = oProfiles,
|
|
.MatchTreeView = oState.MatchTreeView
|
|
}
|
|
|
|
Dim oForm As New frmMatch(My.LogConfig, oEnvironment, oParams)
|
|
oForm.Show()
|
|
|
|
End If
|
|
|
|
Case HOTKEY_TOGGLE_WATCHER
|
|
If oState.MonitoringActive = True Then
|
|
NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Clipboard-Watcher wurde deaktiviert!", ToolTipIcon.Info)
|
|
|
|
Else
|
|
NotifyIcon.ShowBalloonTip(NOTIFICATION_DELAY, "ClipboardWatcher", "Clipboard-Watcher wurde aktiviert!", ToolTipIcon.Info)
|
|
|
|
End If
|
|
|
|
oState.MonitoringActive = Not oState.MonitoringActive
|
|
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub PictureBoxPM_Click(sender As Object, e As EventArgs) Handles PictureBoxPM.Click
|
|
ToastNotificationsManager1.ShowNotification(ToastNotificationsManager1.Notifications(3))
|
|
End Sub
|
|
End Class
|
|
|