This commit is contained in:
Jonathan Jenne 2019-09-19 16:21:13 +02:00
parent 0ec5829275
commit f3a3812993
7 changed files with 85 additions and 11 deletions

View File

@ -39,13 +39,13 @@ Partial Class Form1
Me.TextBox8 = New System.Windows.Forms.TextBox() Me.TextBox8 = New System.Windows.Forms.TextBox()
Me.ComboBox1 = New System.Windows.Forms.ComboBox() Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.Label1 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.SuspendLayout() Me.SuspendLayout()
' '
'Timer1
'
'
'TextBox1 'TextBox1
' '
Me.TextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.TextBox1.Location = New System.Drawing.Point(12, 12) Me.TextBox1.Location = New System.Drawing.Point(12, 12)
Me.TextBox1.Name = "TextBox1" Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(100, 20) Me.TextBox1.Size = New System.Drawing.Size(100, 20)
@ -170,6 +170,22 @@ Partial Class Form1
Me.Label1.TabIndex = 8 Me.Label1.TabIndex = 8
Me.Label1.Text = "Anchor" Me.Label1.Text = "Anchor"
' '
'TextBox3
'
Me.TextBox3.Location = New System.Drawing.Point(231, 206)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.Size = New System.Drawing.Size(100, 20)
Me.TextBox3.TabIndex = 2
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(183, 209)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(41, 13)
Me.Label3.TabIndex = 6
Me.Label3.Text = "Anchor"
'
'Form1 'Form1
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -180,9 +196,11 @@ Partial Class Form1
Me.Controls.Add(Me.Label21) Me.Controls.Add(Me.Label21)
Me.Controls.Add(Me.Label7) Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.TextBox12) Me.Controls.Add(Me.TextBox12)
Me.Controls.Add(Me.TextBox3)
Me.Controls.Add(Me.TextBox11) Me.Controls.Add(Me.TextBox11)
Me.Controls.Add(Me.TextBox10) Me.Controls.Add(Me.TextBox10)
Me.Controls.Add(Me.TextBox9) Me.Controls.Add(Me.TextBox9)
@ -212,4 +230,6 @@ Partial Class Form1
Friend WithEvents TextBox8 As TextBox Friend WithEvents TextBox8 As TextBox
Friend WithEvents ComboBox1 As ComboBox Friend WithEvents ComboBox1 As ComboBox
Friend WithEvents Label1 As Label Friend WithEvents Label1 As Label
Friend WithEvents TextBox3 As TextBox
Friend WithEvents Label3 As Label
End Class End Class

View File

@ -24,12 +24,13 @@ Public Class Form1
End Sub End Sub
Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject) Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject)
Dim oControl As Window.RectangleInfo = Window.GetFocusedControlLocation(CurrentAnchor) Dim oControl As Window.RectangleInfo = Window.GetFocusedControlLocation(Handle, CurrentAnchor)
TextBox9.Text = oControl.Left TextBox9.Text = oControl.Left
TextBox12.Text = oControl.Right TextBox12.Text = oControl.Right
TextBox11.Text = oControl.Top TextBox11.Text = oControl.Top
TextBox10.Text = oControl.Bottom TextBox10.Text = oControl.Bottom
TextBox3.Text = ComboBox1.Text.ToUpper
End Sub End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

View File

@ -48,6 +48,9 @@ Public Class Form1
Case ZUGFERD_REJECTED_EML Case ZUGFERD_REJECTED_EML
args.RejectedEmailDirectory = row.Item("FOLDER_PATH") args.RejectedEmailDirectory = row.Item("FOLDER_PATH")
Case ZUGFERD_ATTACHMENTS
args.AttachmentsSubDirectory = row.Item("FOLDER_PATH")
End Select End Select
Next Next

View File

@ -97,6 +97,23 @@ Public Class ImportZUGFeRDFiles
Dim oSource = GetOriginalEmailPath(Args.OriginalEmailDirectory, MessageId) Dim oSource = GetOriginalEmailPath(Args.OriginalEmailDirectory, MessageId)
Dim oDestination = GetEmailPathWithSubjectAsName(Args.RejectedEmailDirectory, oEmailData.Subject) Dim oDestination = GetEmailPathWithSubjectAsName(Args.RejectedEmailDirectory, oEmailData.Subject)
Dim oVersion As Integer = 0
Dim oFileName As String = oDestination
Do While File.Exists(oFileName)
If oVersion > 29 Then
Throw New ApplicationException("Max. Move-Retries of 30 exceeded! Move will be aborted!")
End If
oVersion += 1
Dim oDestinationDir = Path.GetDirectoryName(oDestination)
Dim oExtension = Path.GetExtension(oFileName)
Dim oRootName = Path.GetFileNameWithoutExtension(oFileName)
Dim oNewName As String = oRootName & "~" & oVersion & oExtension
oFileName = Path.Combine(oDestinationDir, oNewName)
Loop
Try Try
File.Move(oSource, oDestination) File.Move(oSource, oDestination)
oEmailData.Attachment = oDestination oEmailData.Attachment = oDestination

View File

@ -163,18 +163,42 @@ Public Class Window
''' <summary> ''' <summary>
''' Returns Bounds of the focused control. Relative to current form and `Anchor` value. ''' Returns Bounds of the focused control. Relative to current form and `Anchor` value.
''' </summary> ''' </summary>
Public Function GetFocusedControlLocation(Optional Anchor As Anchor = Anchor.TopLeft) As RectangleInfo Public Function GetFocusedControlLocation(WindowHandle As IntPtr, Anchor As Anchor) As RectangleInfo
Dim oWindowRect As New NativeMethods.RectangleAPI Dim oWindowRect As New NativeMethods.RectangleAPI
Dim oControlRect As New NativeMethods.RectangleAPI Dim oControlRect As New NativeMethods.RectangleAPI
Dim oForegroundWindow As IntPtr Dim oForegroundWindow As WindowInfo
Dim oFocusedControl As IntPtr Dim oFocusedControl As WindowInfo
Dim oResult As New RectangleInfo Dim oResult As New RectangleInfo
Try Try
oForegroundWindow = NativeMethods.GetForegroundWindow() oForegroundWindow = GetWindowInfo()
oFocusedControl = NativeMethods.GetFocus() oFocusedControl = GetFocusedControl(WindowHandle)
Return GetControlLocation(oFocusedControl, oForegroundWindow, Anchor) Return GetControlLocation(oFocusedControl.hWnd, oForegroundWindow.hWnd, Anchor)
Catch ex As Exception
_Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function GetFocusedControlLocation(WindowHandle As IntPtr) As Dictionary(Of String, RectangleInfo)
Dim oWindowRect As New NativeMethods.RectangleAPI
Dim oControlRect As New NativeMethods.RectangleAPI
Dim oForegroundWindow As WindowInfo
Dim oFocusedControl As WindowInfo
Dim oResult As New RectangleInfo
Try
oForegroundWindow = GetWindowInfo()
oFocusedControl = GetFocusedControl(WindowHandle)
Dim oDict As New Dictionary(Of String, RectangleInfo)
For Each oAnchor As Anchor In [Enum].GetValues(GetType(Anchor))
oDict.Add(oAnchor.ToString.ToUpper, GetControlLocation(oFocusedControl.hWnd, oForegroundWindow.hWnd, oAnchor))
Next
Return oDict
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
Return Nothing Return Nothing

View File

@ -271,6 +271,7 @@ Public Class ClassProfileFilter
Return oProfiles Return oProfiles
End Function End Function
Public Function FilterProfilesByFocusedControl(Profiles As List(Of ProfileData), ClipboardContents As String, ControlFocusresult As String) As List(Of ProfileData) Public Function FilterProfilesByFocusedControl(Profiles As List(Of ProfileData), ClipboardContents As String, ControlFocusresult As String) As List(Of ProfileData)
Dim oWindow As Window.WindowInfo Dim oWindow As Window.WindowInfo
Dim oFocusedControl As Window.WindowInfo Dim oFocusedControl As Window.WindowInfo

View File

@ -88,6 +88,13 @@ Partial Public Class frmMain
Dim oMatchingProfiles As List(Of ProfileData) Dim oMatchingProfiles As List(Of ProfileData)
Dim oWindow As New Window(My.LogConfig) Dim oWindow As New Window(My.LogConfig)
Dim oWindowInfo = oWindow.GetWindowInfo() Dim oWindowInfo = oWindow.GetWindowInfo()
Dim oControls As New Dictionary(Of String, Window.RectangleInfo) From {
{"TOPLEFT", New Window.RectangleInfo() With {.Left = 20, .Top = 43}}
}
Dim oControl = oWindow.GetFocusedControlLocation(Handle, Window.Anchor.TopLeft)
Dim oFocusedControl As Window.WindowInfo = oWindow.GetFocusedControl(Handle) Dim oFocusedControl As Window.WindowInfo = oWindow.GetFocusedControl(Handle)
Dim oClipboardContents As String = Clipboard.GetText() Dim oClipboardContents As String = Clipboard.GetText()
@ -106,7 +113,8 @@ Partial Public Class frmMain
Logger.Debug("Profiles after FilterProfilesByProcess: {0}", oMatchingProfiles.Count) Logger.Debug("Profiles after FilterProfilesByProcess: {0}", oMatchingProfiles.Count)
oMatchingProfiles = oProfileFilter.FilterWindowsByWindowTitleRegex(oMatchingProfiles, oWindowInfo.WindowTitle) oMatchingProfiles = oProfileFilter.FilterWindowsByWindowTitleRegex(oMatchingProfiles, oWindowInfo.WindowTitle)
Logger.Debug("Profiles after FilterWindowsByWindowTitleRegex: {0}", oMatchingProfiles.Count) Logger.Debug("Profiles after FilterWindowsByWindowTitleRegex: {0}", oMatchingProfiles.Count)
oMatchingProfiles = oProfileFilter.FilterProfilesByFocusedControl(oMatchingProfiles, oClipboardContents, oFocusedControl.hWnd.ToString) 'oMatchingProfiles = oProfileFilter.FilterProfilesByFocusedControl(oMatchingProfiles, oClipboardContents, oFocusedControl.hWnd.ToString)
oMatchingProfiles = oProfileFilter.FilterProfilesByFocusedControlLocation(oMatchingProfiles, oClipboardContents)
Logger.Debug("Profiles after FilterProfilesByFocusedControl: {0}", oMatchingProfiles.Count) Logger.Debug("Profiles after FilterProfilesByFocusedControl: {0}", oMatchingProfiles.Count)
oMatchingProfiles = Await Task.Run(Function() oProfileFilter.FilterProfilesBySearchResults(oMatchingProfiles)) oMatchingProfiles = Await Task.Run(Function() oProfileFilter.FilterProfilesBySearchResults(oMatchingProfiles))
Logger.Debug("Profiles after FilterProfilesBySearchResults: {0}", oMatchingProfiles.Count) Logger.Debug("Profiles after FilterProfilesBySearchResults: {0}", oMatchingProfiles.Count)