ZooFlow: WIP Clipboard Watcher integration
This commit is contained in:
parent
cfc4b17c34
commit
a86f5e1703
@ -18,7 +18,12 @@
|
|||||||
Public Const ATTR_TYPE_INTEGER = "BIG INTEGER"
|
Public Const ATTR_TYPE_INTEGER = "BIG INTEGER"
|
||||||
Public Const ATTR_TYPE_DATE = "DATE"
|
Public Const ATTR_TYPE_DATE = "DATE"
|
||||||
Public Const ATTR_TYPE_BOOLEAN = "BIT"
|
Public Const ATTR_TYPE_BOOLEAN = "BIT"
|
||||||
|
|
||||||
Public Const VECTORSEPARATOR = "╚"
|
Public Const VECTORSEPARATOR = "╚"
|
||||||
|
Public Const SERVICE_ADDRESS_SEPARATOR = ":"
|
||||||
|
|
||||||
|
Public Const HOTKEY_TOGGLE_WATCHER = 354522017
|
||||||
|
Public Const HOTKEY_TRIGGER_WATCHER = 354523017
|
||||||
|
|
||||||
Public Const SQLCMD_FLOW_SEARCH1 = "FLOW_SEARCH1"
|
Public Const SQLCMD_FLOW_SEARCH1 = "FLOW_SEARCH1"
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,15 @@
|
|||||||
Public Class ClassEnvironment
|
Imports DigitalData.Modules.ZooFlow
|
||||||
|
|
||||||
|
Public Class ClassEnvironment
|
||||||
|
Public Shared Function GetEnvironment() As Environment
|
||||||
|
Dim oEnvironment As New Environment() With {
|
||||||
|
.DatabaseIDB = My.DatabaseIDB,
|
||||||
|
.Database = My.Database,
|
||||||
|
.Modules = My.Application.Modules,
|
||||||
|
.Service = My.Application.Service,
|
||||||
|
.Settings = My.Application.Settings,
|
||||||
|
.User = My.Application.User
|
||||||
|
}
|
||||||
|
Return oEnvironment
|
||||||
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -14,8 +14,10 @@ Public Class ClassInit
|
|||||||
Private _MainForm As frmFlowForm
|
Private _MainForm As frmFlowForm
|
||||||
Private _Logger As Logger
|
Private _Logger As Logger
|
||||||
Private _LogConfig As LogConfig
|
Private _LogConfig As LogConfig
|
||||||
Public Event Completed As EventHandler
|
|
||||||
Private _DataASorDB As ClassDataASorDB
|
Private _DataASorDB As ClassDataASorDB
|
||||||
|
Private _Loader As ClassInitLoader
|
||||||
|
|
||||||
|
Public Event Completed As EventHandler
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, ParentForm As frmFlowForm)
|
Public Sub New(LogConfig As LogConfig, ParentForm As frmFlowForm)
|
||||||
_MainForm = ParentForm
|
_MainForm = ParentForm
|
||||||
@ -36,22 +38,23 @@ Public Class ClassInit
|
|||||||
MsgBox("Keine Verbindungs-Informationen hinterlegt. Anwendung wird beendet.", MsgBoxStyle.Critical, _MainForm.Text)
|
MsgBox("Keine Verbindungs-Informationen hinterlegt. Anwendung wird beendet.", MsgBoxStyle.Critical, _MainForm.Text)
|
||||||
Application.Exit()
|
Application.Exit()
|
||||||
Else
|
Else
|
||||||
Dim oInit As New ClassInitLoader()
|
_Loader = New ClassInitLoader()
|
||||||
|
|
||||||
' === Init Schritte definieren
|
' === Init Schritte definieren
|
||||||
oInit.AddStep("Checking connectivity..", AddressOf CheckConnectivity, True)
|
_Loader.AddStep("Checking connectivity..", AddressOf CheckConnectivity, True)
|
||||||
oInit.AddStep("Initializing User..", AddressOf InitializeUser, True)
|
_Loader.AddStep("Initializing User..", AddressOf InitializeUser, True)
|
||||||
oInit.AddStep("Initializing IDB Database..", AddressOf InitializeIDBDatabase, True)
|
_Loader.AddStep("Initializing IDB Database..", AddressOf InitializeIDBDatabase, True)
|
||||||
oInit.AddStep("Initializing IDB Service..", AddressOf InitializeIDBService, True)
|
_Loader.AddStep("Initializing IDB Service..", AddressOf InitializeIDBService, True)
|
||||||
oInit.AddStep("Initializing Language..", AddressOf InitializeLanguage, False)
|
_Loader.AddStep("Initializing Language..", AddressOf InitializeLanguage, False)
|
||||||
oInit.AddStep("Loading 3rd-party licenses..", AddressOf Initialize3rdParty, False)
|
_Loader.AddStep("Initializing Clipboard Watcher..", AddressOf InitializeClipboardWatcher, False)
|
||||||
oInit.AddStep("Loading Basic Configs..", AddressOf InitBasicData, False)
|
_Loader.AddStep("Loading 3rd-party licenses..", AddressOf Initialize3rdParty, False)
|
||||||
|
_Loader.AddStep("Loading Basic Configs..", AddressOf InitBasicData, False)
|
||||||
' === Init Schritte definieren
|
' === Init Schritte definieren
|
||||||
|
|
||||||
AddHandler oInit.ProgressChanged, AddressOf ProgressChanged
|
AddHandler _Loader.ProgressChanged, AddressOf ProgressChanged
|
||||||
AddHandler oInit.InitCompleted, AddressOf InitCompleted
|
AddHandler _Loader.InitCompleted, AddressOf InitCompleted
|
||||||
|
|
||||||
oInit.Run()
|
_Loader.Run()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -96,6 +99,7 @@ Public Class ClassInit
|
|||||||
My.Application.User = oMyApplication.User
|
My.Application.User = oMyApplication.User
|
||||||
My.Application.Modules = oMyApplication.Modules
|
My.Application.Modules = oMyApplication.Modules
|
||||||
My.Application.ModulesActive = oMyApplication.ModulesActive
|
My.Application.ModulesActive = oMyApplication.ModulesActive
|
||||||
|
My.Application.ClipboardWatcher = oMyApplication.ClipboardWatcher
|
||||||
|
|
||||||
RaiseEvent Completed(sender, Nothing)
|
RaiseEvent Completed(sender, Nothing)
|
||||||
End If
|
End If
|
||||||
@ -127,11 +131,9 @@ Public Class ClassInit
|
|||||||
Dim oRow As DataRow = oDatatable.Rows.Item(0)
|
Dim oRow As DataRow = oDatatable.Rows.Item(0)
|
||||||
|
|
||||||
MyApplication.Settings.GdPictureKey = NotNull(oRow.Item("LICENSE"), String.Empty)
|
MyApplication.Settings.GdPictureKey = NotNull(oRow.Item("LICENSE"), String.Empty)
|
||||||
My.Application.Settings.GdPictureKey = NotNull(oRow.Item("LICENSE"), String.Empty)
|
|
||||||
My.Application.GDPictureLicense = My.Application.Settings.GdPictureKey
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw New InitException("Error initializing3rdParty!")
|
Throw New InitException("Error initializing3rdParty!", ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub InitBasicData(MyApplication As My.MyApplication)
|
Private Sub InitBasicData(MyApplication As My.MyApplication)
|
||||||
@ -156,7 +158,7 @@ Public Class ClassInit
|
|||||||
Next
|
Next
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw New InitException("Error in InitBasicData")
|
Throw New InitException("Error in InitBasicData", ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -182,7 +184,7 @@ Public Class ClassInit
|
|||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw New InitException("Error in InitBasicData")
|
Throw New InitException("Error in InitBasicData", ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -252,7 +254,40 @@ Public Class ClassInit
|
|||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
Throw ex
|
Throw New InitException("Error while initializing user!", ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub InitializeClipboardWatcher(MyApplication As My.MyApplication)
|
||||||
|
Try
|
||||||
|
Dim oUserId = My.Application.User.UserId
|
||||||
|
Dim oWhereClause = $"T1.USER_ID = {oUserId} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {oUserId}))"
|
||||||
|
|
||||||
|
Dim oProfileSQL As String = $"SELECT DISTINCT GUID, NAME,REGEX_EXPRESSION,COMMENT,PROC_NAME,PROFILE_TYPE FROM VWCW_USER_PROFILE T1 WHERE {oWhereClause}"
|
||||||
|
Dim oProcessSQL As String = $"SELECT DISTINCT T.GUID, T.PROFILE_ID,T.PROC_NAME FROM TBCW_PROFILE_PROCESS T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
||||||
|
Dim oWindowSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_WINDOW T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
||||||
|
Dim oControlSQL As String = $"SELECT DISTINCT T.* FROM VWCW_PROFILE_REL_CONTROL T, VWCW_USER_PROFILE T1 WHERE T.PROFILE_ID = T1.GUID AND ({oWhereClause})"
|
||||||
|
|
||||||
|
Dim oUserProfiles = My.Database.GetDatatable(oProfileSQL)
|
||||||
|
|
||||||
|
If oUserProfiles Is Nothing OrElse oUserProfiles.Rows.Count = 0 Then
|
||||||
|
MyApplication.ClipboardWatcher.Status = ClipboardWatcher.State.EnumStatus.NoProfilesConfigured
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oProfileProcesses = My.Database.GetDatatable(oProcessSQL)
|
||||||
|
Dim oProfileWindows = My.Database.GetDatatable(oWindowSQL)
|
||||||
|
Dim oProfileControls = My.Database.GetDatatable(oControlSQL)
|
||||||
|
|
||||||
|
MyApplication.ClipboardWatcher.Status = ClipboardWatcher.State.EnumStatus.OK
|
||||||
|
MyApplication.ClipboardWatcher.UserProfiles = oUserProfiles
|
||||||
|
MyApplication.ClipboardWatcher.ProfileProcesses = oProfileProcesses
|
||||||
|
MyApplication.ClipboardWatcher.ProfileWindows = oProfileWindows
|
||||||
|
MyApplication.ClipboardWatcher.ProfileControls = oProfileControls
|
||||||
|
MyApplication.ClipboardWatcher.MonitoringActive = True
|
||||||
|
Catch ex As Exception
|
||||||
|
MyApplication.ClipboardWatcher.Status = ClipboardWatcher.State.EnumStatus.Exception
|
||||||
|
_Logger.Error(ex)
|
||||||
|
Throw New InitException("Error while initializing clipboard watcher!", ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -277,7 +312,6 @@ Public Class ClassInit
|
|||||||
MyApplication.User.Language = NotNull(oValue.ToString, "de-DE")
|
MyApplication.User.Language = NotNull(oValue.ToString, "de-DE")
|
||||||
End Select
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub HandleModuleInfo(MyApplication As My.MyApplication, ModuleName As String, Row As DataRow)
|
Private Sub HandleModuleInfo(MyApplication As My.MyApplication, ModuleName As String, Row As DataRow)
|
||||||
Dim oValue As Object = Row.Item("VALUE")
|
Dim oValue As Object = Row.Item("VALUE")
|
||||||
Dim oName As String = Row.Item("NAME").ToString
|
Dim oName As String = Row.Item("NAME").ToString
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
Imports System.ComponentModel
|
Imports System.ComponentModel
|
||||||
|
Imports DigitalData.GUIs.ZooFlow.My
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
Public Class ClassInitLoader
|
Public Class ClassInitLoader
|
||||||
@ -52,6 +53,13 @@ Public Class ClassInitLoader
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
oStep.Action.Invoke(oMyApplication)
|
oStep.Action.Invoke(oMyApplication)
|
||||||
|
|
||||||
|
My.Application.Settings = oMyApplication.Settings
|
||||||
|
My.Application.User = oMyApplication.User
|
||||||
|
My.Application.Modules = oMyApplication.Modules
|
||||||
|
My.Application.ModulesActive = oMyApplication.ModulesActive
|
||||||
|
My.Application.ClipboardWatcher = oMyApplication.ClipboardWatcher
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
_Logger.Warn("Init Step '{0}' failed!", oStep.Name)
|
_Logger.Warn("Init Step '{0}' failed!", oStep.Name)
|
||||||
|
|||||||
@ -1,8 +1,25 @@
|
|||||||
Namespace ClipboardWatcher
|
Imports DigitalData.Modules.ZooFlow.Params
|
||||||
|
|
||||||
|
Namespace ClipboardWatcher
|
||||||
Public Class State
|
Public Class State
|
||||||
Public UserProfiles As DataTable
|
Public Enum EnumStatus
|
||||||
Public ProfileProcesses As DataTable
|
OK
|
||||||
Public ProfileWindows As DataTable
|
NoProfilesConfigured
|
||||||
Public ProfileControls As DataTable
|
Exception
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public UserProfiles As DataTable = Nothing
|
||||||
|
Public ProfileProcesses As DataTable = Nothing
|
||||||
|
Public ProfileWindows As DataTable = Nothing
|
||||||
|
Public ProfileControls As DataTable = Nothing
|
||||||
|
|
||||||
|
Public MatchTreeView As TreeView = New TreeView()
|
||||||
|
|
||||||
|
Public Property CurrentMatchingProfiles As List(Of ProfileData) = New List(Of ProfileData)
|
||||||
|
Public Property CurrentProfilesWithResults As List(Of ProfileData) = New List(Of ProfileData)
|
||||||
|
Public Property CurrentClipboardContents As String = String.Empty
|
||||||
|
|
||||||
|
Public Property MonitoringActive As Boolean = False
|
||||||
|
Public Property Status As EnumStatus
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
58
GUIs.ZooFlow/frmFlowForm.Designer.vb
generated
58
GUIs.ZooFlow/frmFlowForm.Designer.vb
generated
@ -35,20 +35,21 @@ Partial Class frmFlowForm
|
|||||||
Me.ZooFlowBeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
Me.ZooFlowBeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components)
|
Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components)
|
||||||
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
|
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
|
||||||
Me.TimerCheckActiveForms = New System.Windows.Forms.Timer(Me.components)
|
|
||||||
Me.TimerCheckDroppedFiles = New System.Windows.Forms.Timer(Me.components)
|
|
||||||
Me.PictureBoxAbo = New System.Windows.Forms.PictureBox()
|
Me.PictureBoxAbo = New System.Windows.Forms.PictureBox()
|
||||||
Me.PictureBoxDragDrop = New System.Windows.Forms.PictureBox()
|
Me.PictureBoxDragDrop = New System.Windows.Forms.PictureBox()
|
||||||
Me.PictureBoxGlobix = New System.Windows.Forms.PictureBox()
|
|
||||||
Me.PictureBoxPM = New System.Windows.Forms.PictureBox()
|
Me.PictureBoxPM = New System.Windows.Forms.PictureBox()
|
||||||
Me.PictureBoxSearch = New System.Windows.Forms.PictureBox()
|
Me.PictureBoxSearch = New System.Windows.Forms.PictureBox()
|
||||||
|
Me.TimerCheckActiveForms = New System.Windows.Forms.Timer(Me.components)
|
||||||
|
Me.TimerCheckDroppedFiles = New System.Windows.Forms.Timer(Me.components)
|
||||||
|
Me.PictureBoxGlobix = New System.Windows.Forms.PictureBox()
|
||||||
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
|
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
|
||||||
|
Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
|
||||||
Me.ContextMenuSystray.SuspendLayout()
|
Me.ContextMenuSystray.SuspendLayout()
|
||||||
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.PictureBoxGlobix, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.PictureBoxPM, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.PictureBoxPM, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.PictureBoxSearch, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.PictureBoxSearch, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.PictureBoxGlobix, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
@ -106,14 +107,6 @@ Partial Class frmFlowForm
|
|||||||
Me.ZooFlowBeendenToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
|
Me.ZooFlowBeendenToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
|
||||||
Me.ZooFlowBeendenToolStripMenuItem.Text = "ZooFlow beenden"
|
Me.ZooFlowBeendenToolStripMenuItem.Text = "ZooFlow beenden"
|
||||||
'
|
'
|
||||||
'TimerCheckActiveForms
|
|
||||||
'
|
|
||||||
Me.TimerCheckActiveForms.Interval = 2000
|
|
||||||
'
|
|
||||||
'TimerCheckDroppedFiles
|
|
||||||
'
|
|
||||||
Me.TimerCheckDroppedFiles.Interval = 400
|
|
||||||
'
|
|
||||||
'PictureBoxAbo
|
'PictureBoxAbo
|
||||||
'
|
'
|
||||||
Me.PictureBoxAbo.Cursor = System.Windows.Forms.Cursors.Hand
|
Me.PictureBoxAbo.Cursor = System.Windows.Forms.Cursors.Hand
|
||||||
@ -137,18 +130,6 @@ Partial Class frmFlowForm
|
|||||||
Me.PictureBoxDragDrop.TabStop = False
|
Me.PictureBoxDragDrop.TabStop = False
|
||||||
Me.ToolTip1.SetToolTip(Me.PictureBoxDragDrop, "Drag and Drop files here")
|
Me.ToolTip1.SetToolTip(Me.PictureBoxDragDrop, "Drag and Drop files here")
|
||||||
'
|
'
|
||||||
'PictureBoxGlobix
|
|
||||||
'
|
|
||||||
Me.PictureBoxGlobix.BackColor = System.Drawing.Color.Transparent
|
|
||||||
Me.PictureBoxGlobix.Cursor = System.Windows.Forms.Cursors.Hand
|
|
||||||
Me.PictureBoxGlobix.Image = CType(resources.GetObject("PictureBoxGlobix.Image"), System.Drawing.Image)
|
|
||||||
Me.PictureBoxGlobix.Location = New System.Drawing.Point(448, 23)
|
|
||||||
Me.PictureBoxGlobix.Name = "PictureBoxGlobix"
|
|
||||||
Me.PictureBoxGlobix.Size = New System.Drawing.Size(90, 101)
|
|
||||||
Me.PictureBoxGlobix.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
|
|
||||||
Me.PictureBoxGlobix.TabIndex = 9
|
|
||||||
Me.PictureBoxGlobix.TabStop = False
|
|
||||||
'
|
|
||||||
'PictureBoxPM
|
'PictureBoxPM
|
||||||
'
|
'
|
||||||
Me.PictureBoxPM.BackColor = System.Drawing.Color.Transparent
|
Me.PictureBoxPM.BackColor = System.Drawing.Color.Transparent
|
||||||
@ -175,6 +156,26 @@ Partial Class frmFlowForm
|
|||||||
Me.PictureBoxSearch.TabStop = False
|
Me.PictureBoxSearch.TabStop = False
|
||||||
Me.ToolTip1.SetToolTip(Me.PictureBoxSearch, "ZooFlow Suche")
|
Me.ToolTip1.SetToolTip(Me.PictureBoxSearch, "ZooFlow Suche")
|
||||||
'
|
'
|
||||||
|
'TimerCheckActiveForms
|
||||||
|
'
|
||||||
|
Me.TimerCheckActiveForms.Interval = 2000
|
||||||
|
'
|
||||||
|
'TimerCheckDroppedFiles
|
||||||
|
'
|
||||||
|
Me.TimerCheckDroppedFiles.Interval = 400
|
||||||
|
'
|
||||||
|
'PictureBoxGlobix
|
||||||
|
'
|
||||||
|
Me.PictureBoxGlobix.BackColor = System.Drawing.Color.Transparent
|
||||||
|
Me.PictureBoxGlobix.Cursor = System.Windows.Forms.Cursors.Hand
|
||||||
|
Me.PictureBoxGlobix.Image = CType(resources.GetObject("PictureBoxGlobix.Image"), System.Drawing.Image)
|
||||||
|
Me.PictureBoxGlobix.Location = New System.Drawing.Point(448, 23)
|
||||||
|
Me.PictureBoxGlobix.Name = "PictureBoxGlobix"
|
||||||
|
Me.PictureBoxGlobix.Size = New System.Drawing.Size(90, 101)
|
||||||
|
Me.PictureBoxGlobix.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
|
||||||
|
Me.PictureBoxGlobix.TabIndex = 9
|
||||||
|
Me.PictureBoxGlobix.TabStop = False
|
||||||
|
'
|
||||||
'PictureBox1
|
'PictureBox1
|
||||||
'
|
'
|
||||||
Me.PictureBox1.BackColor = System.Drawing.Color.Transparent
|
Me.PictureBox1.BackColor = System.Drawing.Color.Transparent
|
||||||
@ -185,6 +186,12 @@ Partial Class frmFlowForm
|
|||||||
Me.PictureBox1.TabIndex = 12
|
Me.PictureBox1.TabIndex = 12
|
||||||
Me.PictureBox1.TabStop = False
|
Me.PictureBox1.TabStop = False
|
||||||
'
|
'
|
||||||
|
'ImageList1
|
||||||
|
'
|
||||||
|
Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit
|
||||||
|
Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)
|
||||||
|
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
|
||||||
|
'
|
||||||
'frmFlowForm
|
'frmFlowForm
|
||||||
'
|
'
|
||||||
Me.AllowDrop = True
|
Me.AllowDrop = True
|
||||||
@ -210,9 +217,9 @@ Partial Class frmFlowForm
|
|||||||
Me.ContextMenuSystray.ResumeLayout(False)
|
Me.ContextMenuSystray.ResumeLayout(False)
|
||||||
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.PictureBoxGlobix, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.PictureBoxPM, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.PictureBoxPM, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.PictureBoxSearch, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.PictureBoxSearch, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.PictureBoxGlobix, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
@ -235,4 +242,5 @@ Partial Class frmFlowForm
|
|||||||
Friend WithEvents TimerCheckActiveForms As Timer
|
Friend WithEvents TimerCheckActiveForms As Timer
|
||||||
Friend WithEvents TimerCheckDroppedFiles As Timer
|
Friend WithEvents TimerCheckDroppedFiles As Timer
|
||||||
Friend WithEvents PictureBox1 As PictureBox
|
Friend WithEvents PictureBox1 As PictureBox
|
||||||
|
Friend WithEvents ImageList1 As ImageList
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -1962,34 +1962,6 @@
|
|||||||
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>610, 17</value>
|
<value>610, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TimerCheckActiveForms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>709, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="TimerCheckDroppedFiles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>891, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="PictureBoxGlobix.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
|
||||||
EgAACxIB0t1+/AAAA8pJREFUeF7t3D1uFEEQhmEfwUdwBAIhZG7gI/goPoKP4CP4FAQEyCIgRIgAiQRZ
|
|
||||||
IiAhcERAstQnjaX26t3dmu7qnlm5giepWXf9aH9me2Z9stlsUgMMJj8MJj8MJj8MJj8MJj8MJj8MJj8M
|
|
||||||
Jj8MJj8MjvTj/Ytzc2VuzZ3ZHKDH6LH6m3NacyQM9maNX05DeDA0pDm0hta6pFy9YbAHa/DUXJt7Q4OI
|
|
||||||
oLWV45Rq6AGD0aamIp5tXsp1TbVEw2AUa+LC9HzGHaLcF1RbFAy2sqL1cr2ZmlgD1dLlZY3BFlbomfk6
|
|
||||||
Fb4mqumMam6BwVpWoE5JRr7XzaXaQk99MFhDhU0FUuFrEjpEDM6lgqbCqOA1ChsiBuewQvSed0zDe6Sa
|
|
||||||
m98TMehlBejTdo0fGF6qvenTGYNelnxNpyq1bqg3Lwx6WGKdJFNBx6j6ZBuDHpa06hvGn89vuvr18RXm
|
|
||||||
PeCeevTA4CGWUN9tqZCDNt/fdaUhUl6Hqu/OGNzHEumDo/pTl5qO1DBA9TT7AwWD+1iS6mefbDe7z79v
|
|
||||||
dqpWPN5Df0d5nWY/CzG4jyVp2l0pm6Xjpb9f3j55vEfjAGe/F2JwF0ugnWRK7FY2S8dLCwxQZu1sY3AX
|
|
||||||
W1xb55TUrWyWjpcWGuAt9b4LBnexxZu/spXN0vHSQgN8oN53wSCxhbVhQAlnKZul46WFBijujQYMEltU
|
|
||||||
lxEp2Sxls3S8tOAAr2gGBIPEFm1+/5OyWTpeWnCA7vdBDBJb1HPR+6CyWTpeWnCAdzQDgkECSaqUzdLx
|
|
||||||
0u9Pr5883iNogNYyz2EbBgklqVE2S8draGg5wAarH6AtqA0ETDTXsQzQuDYWMLhNi20tXu1ZDlAgQZVj
|
|
||||||
GeB2/7tgkFCSGjnARs95gMNPpL06DLDLifTwr3JeHQbY5avc8M0Erw4D7LKZMHw7y6vDAOO3s8QWHrqh
|
|
||||||
6hU8wD4bqmKLD93S9woeYNct/aEXlbyCB9jvopJYgmGXNb0CB9j3sqZYkrAL63S8RuAAh1xYD7u1g47X
|
|
||||||
CBrgmFs7xBKF3FykLfsI5S0gDQMcc3PRI0tY9V5YDrCHygGOvb1NLGnVDZbUdKTKAY6/wVIs8exbfHUD
|
|
||||||
ZE8/P7zEvHssc4uvWPK8yZyCc1gB+TOHVlZI/tCmlQqaCqOC1yRseILBWipsKpAKX4PQ4QkGW1iB+XPX
|
|
||||||
VlaoPp3zB9etrOj8yX8EayL/6UQra0gvaw2y5zNSaytHl5crwWBv1mD+450o1rhOffJfPz1XGEx+GEx+
|
|
||||||
GEx+GEx+GEx+GEx+GEx+GEx+GExem5P/BhegvGcbWY4AAAAASUVORK5CYII=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="PictureBoxPM.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="PictureBoxPM.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAGsAAABQCAYAAAAeAotiAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
iVBORw0KGgoAAAANSUhEUgAAAGsAAABQCAYAAAAeAotiAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||||
@ -2043,14 +2015,44 @@
|
|||||||
iTozEYp40EgT8aCRIsXWP0j108YYpYdeAAAAAElFTkSuQmCC
|
iTozEYp40EgT8aCRIsXWP0j108YYpYdeAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<metadata name="TimerCheckActiveForms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>709, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TimerCheckDroppedFiles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>891, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="PictureBoxGlobix.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||||
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBab29tO88J
|
EgAACxIB0t1+/AAAA8pJREFUeF7t3D1uFEEQhmEfwUdwBAIhZG7gI/goPoKP4CP4FAQEyCIgRIgAiQRZ
|
||||||
/rwAAACnSURBVDhPtZLREURAEERJRy4yEIQIHGK4LNT5Fo6fk8bod4XaWnbvnPLx1NR0T88uEjO7xOeR
|
IiAhcERAstQnjaX26t3dmu7qnlm5giepWXf9aH9me2Z9stlsUgMMJj8MJj8MJj8MJj8MJj8MJj8MJj8M
|
||||||
t8MRqShEJ6YFanpo0QAMtbAAaGksgC0Y3+IhsgVqemhFLICjYmLA1+ihdbEA7ouJrb5GD226NeDyFV4C
|
Jj8MJj8MjvTj/Ytzc2VuzZ3ZHKDH6LH6m3NacyQM9maNX05DeDA0pDm0hta6pFy9YbAHa/DUXJt7Q4OI
|
||||||
0xrCVqD++hIrsQ6HCH5Gf7gXP/9I/nAj3PAdbsBTnBoGN2AUp4bBDSgFIZxkZwyxBfyPJTM6YCR+mWYM
|
oLWV45Rq6AGD0aamIp5tXsp1TbVEw2AUa+LC9HzGHaLcF1RbFAy2sqL1cr2ZmlgD1dLlZY3BFlbomfk6
|
||||||
fQAAAABJRU5ErkJggg==
|
Fb4mqumMam6BwVpWoE5JRr7XzaXaQk99MFhDhU0FUuFrEjpEDM6lgqbCqOA1ChsiBuewQvSed0zDe6Sa
|
||||||
|
m98TMehlBejTdo0fGF6qvenTGYNelnxNpyq1bqg3Lwx6WGKdJFNBx6j6ZBuDHpa06hvGn89vuvr18RXm
|
||||||
|
PeCeevTA4CGWUN9tqZCDNt/fdaUhUl6Hqu/OGNzHEumDo/pTl5qO1DBA9TT7AwWD+1iS6mefbDe7z79v
|
||||||
|
dqpWPN5Df0d5nWY/CzG4jyVp2l0pm6Xjpb9f3j55vEfjAGe/F2JwF0ugnWRK7FY2S8dLCwxQZu1sY3AX
|
||||||
|
W1xb55TUrWyWjpcWGuAt9b4LBnexxZu/spXN0vHSQgN8oN53wSCxhbVhQAlnKZul46WFBijujQYMEltU
|
||||||
|
lxEp2Sxls3S8tOAAr2gGBIPEFm1+/5OyWTpeWnCA7vdBDBJb1HPR+6CyWTpeWnCAdzQDgkECSaqUzdLx
|
||||||
|
0u9Pr5883iNogNYyz2EbBgklqVE2S8draGg5wAarH6AtqA0ETDTXsQzQuDYWMLhNi20tXu1ZDlAgQZVj
|
||||||
|
GeB2/7tgkFCSGjnARs95gMNPpL06DLDLifTwr3JeHQbY5avc8M0Erw4D7LKZMHw7y6vDAOO3s8QWHrqh
|
||||||
|
6hU8wD4bqmKLD93S9woeYNct/aEXlbyCB9jvopJYgmGXNb0CB9j3sqZYkrAL63S8RuAAh1xYD7u1g47X
|
||||||
|
CBrgmFs7xBKF3FykLfsI5S0gDQMcc3PRI0tY9V5YDrCHygGOvb1NLGnVDZbUdKTKAY6/wVIs8exbfHUD
|
||||||
|
ZE8/P7zEvHssc4uvWPK8yZyCc1gB+TOHVlZI/tCmlQqaCqOC1yRseILBWipsKpAKX4PQ4QkGW1iB+XPX
|
||||||
|
VlaoPp3zB9etrOj8yX8EayL/6UQra0gvaw2y5zNSaytHl5crwWBv1mD+450o1rhOffJfPz1XGEx+GEx+
|
||||||
|
GEx+GEx+GEx+GEx+GEx+GEx+GExem5P/BhegvGcbWY4AAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFpvb207zwn+vAAAAKdJREFUOE+1
|
||||||
|
ktERREAQRElHLjIQhAgcYrgs1PkWjp+Txuh3hdpadu+c8vHU1HRPzy4SM7vE55G3wxGpKEQnpgVqemjR
|
||||||
|
AAy1sABoaSyALRjf4iGyBWp6aEUsgKNiYsDX6KF1sQDui4mtvkYPbbo14PIVXgLTGsJWoP76EiuxDocI
|
||||||
|
fkZ/uBc//0j+cCPc8B1uwFOcGgY3YBSnhsENKAUhnGRnDLEF/I8lMzpgJH6ZZgx9AAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>1079, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
@ -4,6 +4,8 @@ Imports System.IO
|
|||||||
Imports DevExpress.XtraSplashScreen
|
Imports DevExpress.XtraSplashScreen
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
Imports DigitalData.Modules.Messaging
|
Imports DigitalData.Modules.Messaging
|
||||||
|
Imports DigitalData.Modules.Windows
|
||||||
|
|
||||||
Imports DigitalData.GUIs.ClipboardWatcher
|
Imports DigitalData.GUIs.ClipboardWatcher
|
||||||
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
||||||
|
|
||||||
@ -21,6 +23,8 @@ Public Class frmFlowForm
|
|||||||
Private FileDrop As ClassFileDrop
|
Private FileDrop As ClassFileDrop
|
||||||
Private FileHandle As ClassFilehandle
|
Private FileHandle As ClassFilehandle
|
||||||
Private ProfileFilter As ProfileFilter
|
Private ProfileFilter As ProfileFilter
|
||||||
|
Private WindowClass As Window
|
||||||
|
|
||||||
|
|
||||||
' Runtime Flags
|
' Runtime Flags
|
||||||
Private ApplicationLoading As Boolean = True
|
Private ApplicationLoading As Boolean = True
|
||||||
@ -33,6 +37,7 @@ Public Class frmFlowForm
|
|||||||
|
|
||||||
' Events
|
' Events
|
||||||
Public Event ClipboardChanged As EventHandler(Of IDataObject)
|
Public Event ClipboardChanged As EventHandler(Of IDataObject)
|
||||||
|
Private WithEvents HotkeyClass As Hotkey
|
||||||
Private WithEvents Watcher As ClipboardWatcher.Watcher = ClipboardWatcher.Watcher.Singleton
|
Private WithEvents Watcher As ClipboardWatcher.Watcher = ClipboardWatcher.Watcher.Singleton
|
||||||
|
|
||||||
Public Sub New()
|
Public Sub New()
|
||||||
@ -89,7 +94,6 @@ Public Class frmFlowForm
|
|||||||
' === Register As Event Listener ===
|
' === Register As Event Listener ===
|
||||||
EventBus.Instance.Register(Me)
|
EventBus.Instance.Register(Me)
|
||||||
|
|
||||||
|
|
||||||
' === Set Form Properties ===
|
' === Set Form Properties ===
|
||||||
TopMost = True
|
TopMost = True
|
||||||
AllowDrop = True
|
AllowDrop = True
|
||||||
@ -108,7 +112,6 @@ Public Class frmFlowForm
|
|||||||
|
|
||||||
AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
|
AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
|
||||||
|
|
||||||
|
|
||||||
' TODO: Clean up
|
' TODO: Clean up
|
||||||
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
|
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)
|
Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
|
||||||
@ -119,17 +122,136 @@ Public Class frmFlowForm
|
|||||||
DTIDB_SEARCHES = oDatatable
|
DTIDB_SEARCHES = oDatatable
|
||||||
PictureBoxSearch.Visible = True
|
PictureBoxSearch.Visible = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If My.Application.ModulesActive.Contains(MODULE_CLIPBOARDWATCHER) Then
|
||||||
|
Try
|
||||||
|
WindowClass = 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
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
MsgBox("Error while initializing Hotkeys for 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
|
If My.Application.ModulesActive.Contains(MODULE_GLOBAL_INDEXER) Then
|
||||||
FileDrop = New ClassFileDrop(My.LogConfig)
|
FileDrop = New ClassFileDrop(My.LogConfig)
|
||||||
FileHandle = New ClassFilehandle(My.LogConfig)
|
FileHandle = New ClassFilehandle(My.LogConfig)
|
||||||
Refresh_RegexTable()
|
Refresh_RegexTable()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
My.DTAttributes = My.DatabaseIDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE")
|
My.DTAttributes = My.DatabaseIDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE")
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject)
|
Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject)
|
||||||
Throw New NotImplementedException()
|
If My.Application.ClipboardWatcher.MonitoringActive = False Then
|
||||||
|
Logger.Info("Clipboard Watcher is not active!")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If My.Application.ClipboardWatcher.UserProfiles Is Nothing OrElse My.Application.ClipboardWatcher.UserProfiles.Rows.Count = 0 Then
|
||||||
|
Logger.Warn("User Profiles is empty!")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If My.Application.ClipboardWatcher.ProfileProcesses Is Nothing OrElse My.Application.ClipboardWatcher.ProfileProcesses.Rows.Count = 0 Then
|
||||||
|
Logger.Warn("Profile Processes is empty!")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If My.Application.ClipboardWatcher.ProfileWindows Is Nothing OrElse My.Application.ClipboardWatcher.ProfileWindows.Rows.Count = 0 Then
|
||||||
|
Logger.Warn("Profile Processes is empty!")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If My.Application.ClipboardWatcher.ProfileProcesses Is Nothing OrElse My.Application.ClipboardWatcher.ProfileProcesses.Rows.Count = 0 Then
|
||||||
|
Logger.Warn("Profile Processes is empty!")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
Dim oWindowInfo = WindowClass.GetWindowInfo()
|
||||||
|
Dim ClipboardContents As String = Clipboard.GetText().Trim()
|
||||||
|
|
||||||
|
Try
|
||||||
|
' Tree View zurücksetzen
|
||||||
|
My.Application.ClipboardWatcher.MatchTreeView.Nodes.Clear()
|
||||||
|
|
||||||
|
ProfileFilter = New ProfileFilter(My.LogConfig,
|
||||||
|
My.Application.ClipboardWatcher.UserProfiles,
|
||||||
|
My.Application.ClipboardWatcher.ProfileProcesses,
|
||||||
|
My.Application.ClipboardWatcher.ProfileWindows,
|
||||||
|
My.Application.ClipboardWatcher.ProfileControls,
|
||||||
|
My.Application.ClipboardWatcher.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.AsEnumerable()
|
||||||
|
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")
|
||||||
|
My.Application.ClipboardWatcher.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")
|
||||||
|
|
||||||
|
My.Application.ClipboardWatcher.CurrentProfilesWithResults = oProfiles.ToList()
|
||||||
|
My.Application.ClipboardWatcher.CurrentClipboardContents = ClipboardContents
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
MsgBox("Fehler beim Auswerten der Profile. Mehr Informationen im Log.", MsgBoxStyle.Critical, Text)
|
||||||
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs)
|
Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs)
|
||||||
@ -411,7 +533,7 @@ Public Class frmFlowForm
|
|||||||
My.Application.Globix.CURRENT_WORKFILE_GUID = oFileRow.Item(0)
|
My.Application.Globix.CURRENT_WORKFILE_GUID = oFileRow.Item(0)
|
||||||
My.Application.Globix.CURRENT_WORKFILE = oFileRow.Item("FILENAME2WORK").ToString
|
My.Application.Globix.CURRENT_WORKFILE = oFileRow.Item("FILENAME2WORK").ToString
|
||||||
Logger.Info(">> CURRENT_WORKFILE: " & My.Application.Globix.CURRENT_WORKFILE)
|
Logger.Info(">> CURRENT_WORKFILE: " & My.Application.Globix.CURRENT_WORKFILE)
|
||||||
If File.Exists(My.Application.Globix.CURRENT_WORKFILE) = True And My.Application.Globix.DTACTUAL_FILES.Rows.Count > 0 Then
|
If IO.File.Exists(My.Application.Globix.CURRENT_WORKFILE) = True And My.Application.Globix.DTACTUAL_FILES.Rows.Count > 0 Then
|
||||||
Globix_Open_IndexDialog()
|
Globix_Open_IndexDialog()
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
@ -441,6 +563,13 @@ Public Class frmFlowForm
|
|||||||
My.UIConfigManager.Save()
|
My.UIConfigManager.Save()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub frmFlowForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||||
|
Try
|
||||||
|
HotkeyClass.RemoveHotKey(HOTKEY_TOGGLE_WATCHER)
|
||||||
|
HotkeyClass.RemoveHotKey(HOTKEY_TRIGGER_WATCHER)
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
Logger.Warn("Hotkeys could not be removed")
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
84
Windows/Hotkey.vb
Normal file
84
Windows/Hotkey.vb
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
Imports System.Windows.Forms
|
||||||
|
|
||||||
|
Public Class Hotkey
|
||||||
|
Implements IMessageFilter
|
||||||
|
|
||||||
|
Private _OwnerForm As Form
|
||||||
|
Private _HotkeyList As New Dictionary(Of Short, HotKeyObject)
|
||||||
|
Private _HotkeyIDList As New Dictionary(Of String, Short)
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Diesem Event wird immer die zugewiesene HotKeyID übergeben, wenn eine HotKey Kombination gedrückt wurde.
|
||||||
|
''' </summary>
|
||||||
|
Public Event HotKeyPressed(ByVal HotKeyID As String)
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Definiert verfügbare Modfier Keys
|
||||||
|
''' </summary>
|
||||||
|
Public Enum ModfierKey As Integer
|
||||||
|
MOD_ALT = 1
|
||||||
|
MOD_CONTROL = 2
|
||||||
|
MOD_SHIFT = 4
|
||||||
|
MOD_WIN = 8
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Sub New(ByVal pOwnerForm As Form)
|
||||||
|
_OwnerForm = pOwnerForm
|
||||||
|
Application.AddMessageFilter(Me)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Diese Funktion fügt einen Hotkey hinzu und registriert ihn auch sofort
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="pKeyCode">Den KeyCode für die Taste</param>
|
||||||
|
''' <param name="pModifiers">Die Zusatztasten wie z.B. Strg oder Alt, diese können auch mit OR kombiniert werden</param>
|
||||||
|
''' <param name="pHotKeyID">Die ID die der Hotkey bekommen soll um diesen zu identifizieren</param>
|
||||||
|
Public Sub AddHotKey(ByVal pKeyCode As Keys, ByVal pModifiers As ModfierKey, ByVal pHotKeyID As Integer)
|
||||||
|
If _HotkeyIDList.ContainsKey(pHotKeyID) = True Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oHotkeyId As Short = NativeMethods.GlobalAddAtom(pHotKeyID)
|
||||||
|
_HotkeyIDList.Add(pHotKeyID, oHotkeyId)
|
||||||
|
_HotkeyList.Add(oHotkeyId, New HotKeyObject(pKeyCode, pModifiers, pHotKeyID))
|
||||||
|
|
||||||
|
NativeMethods.RegisterHotKey(_OwnerForm.Handle, oHotkeyId, _HotkeyList(oHotkeyId).Modifier, _HotkeyList(oHotkeyId).HotKey)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Diese Funktion entfernt einen Hotkey und deregistriert ihn auch sofort
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="pHotKeyID">Gibt die HotkeyID an welche entfernt werden soll</param>
|
||||||
|
Public Sub RemoveHotKey(ByVal pHotKeyID As Integer)
|
||||||
|
If _HotkeyIDList.ContainsKey(pHotKeyID) = False Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oHotkeyId As Short = _HotkeyIDList(pHotKeyID)
|
||||||
|
_HotkeyIDList.Remove(pHotKeyID)
|
||||||
|
_HotkeyList.Remove(oHotkeyId)
|
||||||
|
NativeMethods.UnregisterHotKey(_OwnerForm.Handle, CInt(oHotkeyId))
|
||||||
|
NativeMethods.GlobalDeleteAtom(oHotkeyId)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function PreFilterMessage(ByRef m As Message) As Boolean Implements IMessageFilter.PreFilterMessage
|
||||||
|
If m.Msg = NativeMethods.WM_HOTKEY Then
|
||||||
|
If Clipboard.GetText().Trim() <> String.Empty Then
|
||||||
|
RaiseEvent HotKeyPressed(_HotkeyList(CShort(m.WParam)).HotKeyID)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Class HotKeyObject
|
||||||
|
Public Property HotKey() As Keys
|
||||||
|
Public Property Modifier() As ModfierKey
|
||||||
|
Public Property HotKeyID() As String
|
||||||
|
Public Property AtomID() As Short
|
||||||
|
|
||||||
|
Sub New(ByVal NewHotKey As Keys, ByVal NewModifier As ModfierKey, ByVal NewHotKeyID As String)
|
||||||
|
HotKey = NewHotKey
|
||||||
|
Modifier = NewModifier
|
||||||
|
HotKeyID = NewHotKeyID
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Class
|
||||||
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
<Assembly: AssemblyVersion("1.1.0.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.1.0.0")>
|
||||||
|
|||||||
@ -79,6 +79,27 @@ Public Class NativeMethods
|
|||||||
Public Shared Function GetCursorPos(ByRef lpPoint As PointAPI) As <MarshalAs(UnmanagedType.Bool)> Boolean
|
Public Shared Function GetCursorPos(ByRef lpPoint As PointAPI) As <MarshalAs(UnmanagedType.Bool)> Boolean
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Declare Function RegisterHotKey Lib "user32" (
|
||||||
|
ByVal Hwnd As IntPtr,
|
||||||
|
ByVal ID As Integer,
|
||||||
|
ByVal Modifiers As Integer,
|
||||||
|
ByVal Key As Integer
|
||||||
|
) As Integer
|
||||||
|
|
||||||
|
Public Declare Function UnregisterHotKey Lib "user32" (
|
||||||
|
ByVal Hwnd As IntPtr,
|
||||||
|
ByVal ID As Integer
|
||||||
|
) As Integer
|
||||||
|
|
||||||
|
Public Declare Auto Function GetWindowText Lib "user32" (
|
||||||
|
ByVal hWnd As IntPtr,
|
||||||
|
ByVal lpString As StringBuilder,
|
||||||
|
ByVal cch As Integer
|
||||||
|
) As Integer
|
||||||
|
|
||||||
|
Public Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal IDString As String) As Short
|
||||||
|
Public Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal Atom As Short) As Short
|
||||||
|
|
||||||
Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000
|
Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000
|
||||||
Public Const SECTION_QUERY As Short = &H1
|
Public Const SECTION_QUERY As Short = &H1
|
||||||
Public Const SECTION_MAP_WRITE As Short = &H2
|
Public Const SECTION_MAP_WRITE As Short = &H2
|
||||||
@ -104,6 +125,7 @@ Public Class NativeMethods
|
|||||||
Public Const SEE_MASK_INVOKEIDLIST = &HC
|
Public Const SEE_MASK_INVOKEIDLIST = &HC
|
||||||
Public Const SEE_MASK_NOCLOSEPROCESS = &H40
|
Public Const SEE_MASK_NOCLOSEPROCESS = &H40
|
||||||
Public Const SEE_MASK_FLAG_NO_UI = &H400
|
Public Const SEE_MASK_FLAG_NO_UI = &H400
|
||||||
|
Public Const WM_HOTKEY As Integer = &H312
|
||||||
|
|
||||||
Public Enum PageProtection As UInteger
|
Public Enum PageProtection As UInteger
|
||||||
NoAccess = &H1
|
NoAccess = &H1
|
||||||
|
|||||||
@ -76,6 +76,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Drawing.vb" />
|
<Compile Include="Drawing.vb" />
|
||||||
<Compile Include="File.vb" />
|
<Compile Include="File.vb" />
|
||||||
|
<Compile Include="Hotkey.vb" />
|
||||||
<Compile Include="NativeMethods.vb" />
|
<Compile Include="NativeMethods.vb" />
|
||||||
<Compile Include="Utils.vb" />
|
<Compile Include="Utils.vb" />
|
||||||
<Compile Include="Window.vb" />
|
<Compile Include="Window.vb" />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user