diff --git a/Global_Indexer/ClassFileDrop.vb b/Global_Indexer/ClassFileDrop.vb index b861b9e..ccf9cf3 100644 --- a/Global_Indexer/ClassFileDrop.vb +++ b/Global_Indexer/ClassFileDrop.vb @@ -53,7 +53,7 @@ Public Class ClassFileDrop Loop stmInput.Close() 'Sonderzeichen entfernen - Dim Tempfilename = ClassFilehandle.InvalidCharacters(stbFileName.ToString) + Dim Tempfilename = DigitalData.Modules.Language.Utils.RemoveInvalidCharacters(stbFileName.ToString) Dim anhaenge = e.Data.GetDataPresent("FileContents") 'Dim path As String = "C:\VBProjekte\Dateien" '// put the zip file into the temp directory @@ -93,61 +93,68 @@ Public Class ClassFileDrop End If End If If e.Data.GetDataPresent("FileGroupDescriptor") Then - Dim oApp As Outlook.Application + Dim oApp As Outlook.Application + Try + oApp = New Outlook.Application() + Catch ex As Exception + LOGGER.Error(ex) + MsgBox("Unexpected error in Initialisieren von Outlook-API:" & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Evtl ist Outlook nicht in der dafür vorgesehenen For") + Return False + End Try + + LOGGER.Info(" Drop of msg") + 'supports a drop of a Outlook message + Dim myobj As Outlook.MailItem + For i As Integer = 1 To oApp.ActiveExplorer.Selection.Count + myobj = oApp.ActiveExplorer.Selection.Item(i) + Dim subj As String = myobj.Subject + If subj = "" Then + subj = "NO_SUBJECT" + End If + If subj.Contains("\") Then + subj = subj.Replace("\", "-") + End If + If subj.Contains("/") Then + subj = subj.Replace("/", "-") + End If + + 'Sonderzeichen entfernen + subj = DigitalData.Modules.Language.Utils.RemoveInvalidCharacters(subj) + 'hardcode a destination path for testing + Dim oFilename As String = IO.Path.Combine(Path.GetTempPath, subj + ".msg") + + oFilename = oFilename.Replace("?", "") + oFilename = oFilename.Replace("!", "") + oFilename = oFilename.Replace("%", "") + oFilename = oFilename.Replace("$", "") + LOGGER.Info("Drop of msg - File:" & oFilename) Try - oApp = New Outlook.Application() + myobj.SaveAs(oFilename) Catch ex As Exception LOGGER.Error(ex) - MsgBox("Unexpected error in Initialisieren von Outlook-API:" & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Evtl ist Outlook nicht in der dafür vorgesehenen For") - Return False - End Try - - LOGGER.Info(" Drop of msg") - 'supports a drop of a Outlook message - Dim myobj As Outlook.MailItem - For i As Integer = 1 To oApp.ActiveExplorer.Selection.Count - myobj = oApp.ActiveExplorer.Selection.Item(i) - Dim subj As String = myobj.Subject - If subj = "" Then - subj = "NO_SUBJECT" - End If - If subj.Contains("\") Then - subj = subj.Replace("\", "-") - End If - If subj.Contains("/") Then - subj = subj.Replace("/", "-") - End If - 'Sonderzeichen entfernen - subj = ClassFilehandle.InvalidCharacters(subj) - 'hardcode a destination path for testing - Dim oFilename As String = IO.Path.Combine(Path.GetTempPath, subj + ".msg") - oFilename = oFilename.Replace("?", "") - oFilename = oFilename.Replace("!", "") - oFilename = oFilename.Replace("%", "") - oFilename = oFilename.Replace("$", "") - LOGGER.Info("Drop of msg - File:" & oFilename) - Try - myobj.SaveAs(oFilename) - Catch ex As Exception - LOGGER.Error(ex) - MsgBox("Die Email konnte aufgrund einer Sicherheitseinstellung im Outlook nicht abgelegt werden! " & + MsgBox("Die Email konnte aufgrund einer Sicherheitseinstellung im Outlook nicht abgelegt werden! " & "Bitte wenden Sie sich an Ihren Administrator, " & "um den programmatischen Zugriff auf Outlook zuzulassen. " & "Weitere Informationen finden Sie im Log.", MsgBoxStyle.Critical, "Global Indexer") - End Try + End Try - ReDim Preserve files_dropped(i) - files_dropped(i) = "|OUTLOOK_MESSAGE|" & oFilename - Next - Return True + ReDim Preserve files_dropped(i) + files_dropped(i) = "|OUTLOOK_MESSAGE|" & oFilename + Next + + + Return True 'Drop eines Outlook Attachments End If + Catch ex As Exception MsgBox("Error in Drop-File" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try + End Function + 'Private Sub DragDrop_HandleTobit(e As DragEventArgs) ' If e.Data.GetDataPresent("#TobitMsgData") Then ' Dim Quellpfad As String = "" diff --git a/Global_Indexer/ClassFilehandle.vb b/Global_Indexer/ClassFilehandle.vb index 7378cb0..0c466d3 100644 --- a/Global_Indexer/ClassFilehandle.vb +++ b/Global_Indexer/ClassFilehandle.vb @@ -2,21 +2,9 @@ Imports System.Text.RegularExpressions Imports DevExpress.XtraEditors Imports Independentsoft +Imports DigitalData.Modules.Language Public Class ClassFilehandle - ''' - ''' Diese Funktion entfernt alle Zeichen aus dem übergebenen String - ''' die in Dateinamen nicht erlaubt sind. - ''' - ''' Der zu prüfende String - ''' String ohne nichterlaubte Zeichen - Public Shared Function InvalidCharacters(Input As String) As String - Dim replacement = "" - 'Return System.Text.RegularExpressions.Regex.Replace(Input, "[\\/:*?""<>|\r\n]", "", System.Text.RegularExpressions.RegexOptions.Singleline) - Dim regexSearch = New String(Path.GetInvalidFileNameChars()) & New String(Path.GetInvalidPathChars()) - Dim r = New Regex(String.Format("[{0}]", Regex.Escape(regexSearch))) - Return r.Replace(Input, replacement) - End Function Public Shared Function Decide_FileHandle(pFilename As String, pHandletype As String) Try If pFilename.EndsWith(".msg") Then @@ -115,7 +103,7 @@ Public Class ClassFilehandle attachment_name = attachment.LongFileName End If If attachment.EmbeddedMessage IsNot Nothing Then - attachment_name = ClassFilehandle.InvalidCharacters(attachment_name) + attachment_name = Utils.RemoveInvalidCharacters(attachment_name) tempfile = Path.Combine(Path.GetTempPath, attachment_name & ".msg") tempfile = ClassFilehandle.Versionierung_Datei(tempfile) @@ -129,7 +117,7 @@ Public Class ClassFilehandle End If ElseIf Not attachment_name.Contains("inline") Then 'Sonderzeichen entfernen - attachment_name = ClassFilehandle.InvalidCharacters(attachment_name) + attachment_name = Utils.RemoveInvalidCharacters(attachment_name) tempfile = Path.Combine(Path.GetTempPath, attachment_name) tempfile = ClassFilehandle.Versionierung_Datei(tempfile) If tempfile <> "" Then diff --git a/Global_Indexer/Global_Indexer.vbproj b/Global_Indexer/Global_Indexer.vbproj index 14e7560..4bdbad7 100644 --- a/Global_Indexer/Global_Indexer.vbproj +++ b/Global_Indexer/Global_Indexer.vbproj @@ -167,6 +167,10 @@ ..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll False + + False + ..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll + False ..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll diff --git a/SetupVS19/Product.wxs b/SetupVS19/Product.wxs index 48ef874..b8e1ef8 100644 --- a/SetupVS19/Product.wxs +++ b/SetupVS19/Product.wxs @@ -118,6 +118,7 @@ +