diff --git a/app/DD_PM_WINDREAM/ModuleMySettings.vb b/app/DD_PM_WINDREAM/ModuleMySettings.vb index 90830ae..6ac990d 100644 --- a/app/DD_PM_WINDREAM/ModuleMySettings.vb +++ b/app/DD_PM_WINDREAM/ModuleMySettings.vb @@ -2,7 +2,9 @@ Imports System.Xml Module ModuleMySettings - Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml") + 'Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml") + Public Const CONFIG_FILE = "UserConfig.xml" + Public MyConnectionString As String = "" Public UniversalViewer As String = "" Public PDFXChangeViewer As String = "" @@ -23,173 +25,188 @@ Module ModuleMySettings Public vFILE_DELIMITER As String = "_" Public WMSESSION_STARTSTOP_STARTUP As Boolean = False + Public Function GetUserConfigPath() As String + Return Path.Combine(Application.UserAppDataPath(), CONFIG_FILE) + End Function + + Public Function GetAllUsersConfigPath() As String + Return Path.Combine(Application.CommonAppDataPath(), CONFIG_FILE) + End Function + Public Function Settings_Load() Try - Dim DT As DataTable - 'if file doesn't exist, create the file with its default xml table - If Not File.Exists(ConfigPath) Then - DT = CreateConfigTable() - DT.WriteXml(ConfigPath) + Dim oDatatable As DataTable + ' if file in %APPDATA% doesn't exist, + ' check for file in %ALLUSERSPROFILE%, + ' otherwise create the file with its default xml table + If File.Exists(GetUserConfigPath()) Then + oDatatable = GetTablefromXML(GetUserConfigPath()) + ElseIf File.Exists(GetAllUsersConfigPath()) Then + oDatatable = GetTablefromXML(GetAllUsersConfigPath()) + Else + oDatatable = CreateConfigTable() + oDatatable.WriteXml(GetUserConfigPath()) End If - DT = GetTablefromXML() - For Each Row As DataRow In DT.Rows - Select Case Row.Item("ConfigName") + + For Each oRow As DataRow In oDatatable.Rows + Select Case oRow.Item("ConfigName") Case "MyConnectionString" - Dim connstring As String + Dim oConnectionString As String 'Den ConnectonString mit verschlüsseltem PW laden - Dim csb As New SqlClient.SqlConnectionStringBuilder - csb.ConnectionString = Row.Item("Value") - If Not csb.ConnectionString = "" Then - If csb.ConnectionString.Contains("Password=") Then + Dim oBuilder As New SqlClient.SqlConnectionStringBuilder + oBuilder.ConnectionString = oRow.Item("Value") + If Not oBuilder.ConnectionString = "" Then + If oBuilder.ConnectionString.Contains("Password=") Then 'sa- 'Jetzt das Passwort entschlüsseln Dim PWplainText As String Dim wrapper As New ClassEncryption("!35452didalog=") ' DecryptData throws if the wrong password is used. Try - PWplainText = wrapper.DecryptData(csb.Password) + PWplainText = wrapper.DecryptData(oBuilder.Password) Catch ex As Exception - ClassLogger.Add("- the Password '" & csb.Password & "' could not be decrypted", False) - PWplainText = csb.Password + ClassLogger.Add("- the Password '" & oBuilder.Password & "' could not be decrypted", False) + PWplainText = oBuilder.Password End Try - connstring = Row.Item("Value").ToString.Replace(csb.Password, PWplainText) + oConnectionString = oRow.Item("Value").ToString.Replace(oBuilder.Password, PWplainText) Else 'Windows-Auth - connstring = Row.Item("Value").ToString + oConnectionString = oRow.Item("Value").ToString End If - MyConnectionString = connstring + MyConnectionString = oConnectionString ClassDatabase.Init() Else MyConnectionString = "" End If Case "LogErrorsOnly" - LogErrorsOnly = CBool(Row.Item("Value")) + LogErrorsOnly = CBool(oRow.Item("Value")) Case "UniversalViewer" - UniversalViewer = Row.Item("Value") + UniversalViewer = oRow.Item("Value") Case "PDFXChangeViewer" - PDFXChangeViewer = Row.Item("Value") + PDFXChangeViewer = oRow.Item("Value") Case "PDFViewer_ZoomMode" - PDFViewer_ZoomMode = Row.Item("Value") + PDFViewer_ZoomMode = oRow.Item("Value") Case "vpdfviewer" - vpdfviewer = Row.Item("Value") + vpdfviewer = oRow.Item("Value") Case "Viewer" - Viewer = Row.Item("Value") + Viewer = oRow.Item("Value") Case "SumatraViewer" - SumatraViewer = Row.Item("Value") + SumatraViewer = oRow.Item("Value") Case "IDX_DMS_ERSTELLT" - IDX_DMS_ERSTELLT = Row.Item("Value") + IDX_DMS_ERSTELLT = oRow.Item("Value") Case "IDX_DMS_ERSTELLT_ZEIT" - IDX_DMS_ERSTELLT_ZEIT = Row.Item("Value") + IDX_DMS_ERSTELLT_ZEIT = oRow.Item("Value") Case "USRMNGRPATH" - USRMNGRPATH = Row.Item("Value") + USRMNGRPATH = oRow.Item("Value") End Select Next + Return True Catch ex As Exception MsgBox("Error in LoadMyConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try - Return True - End Function - Private Function GetTablefromXML() + Private Function GetTablefromXML(ConfigPath As String) Try - Dim DS As New DataSet - DS.ReadXml(ConfigPath) - Return DS.Tables(0) + Dim oDataset As New DataSet + oDataset.ReadXml(ConfigPath) + Return oDataset.Tables(0) Catch ex As Exception MsgBox("Error in GetTablefromXML" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return Nothing End Try - End Function Private Function CreateConfigTable() As DataTable Try ' Create sample Customers table, in order ' to demonstrate the behavior of the DataTableReader. - Dim table As New DataTable - table.TableName = "MyConfig" + Dim oTable As New DataTable + oTable.TableName = "MyConfig" ' Create two columns, ID and Name. - Dim idColumn As DataColumn = table.Columns.Add("ID", _ + Dim oIdColumn As DataColumn = oTable.Columns.Add("ID", GetType(System.Int32)) - idColumn.AutoIncrement = True - idColumn.AutoIncrementSeed = 0 - idColumn.AutoIncrementStep = 1 - table.Columns.Add("ConfigName", GetType(System.String)) - table.Columns.Add("Value", GetType(System.String)) + oIdColumn.AutoIncrement = True + oIdColumn.AutoIncrementSeed = 0 + oIdColumn.AutoIncrementStep = 1 + oTable.Columns.Add("ConfigName", GetType(System.String)) + oTable.Columns.Add("Value", GetType(System.String)) 'Set the ID column as the primary key column. - table.PrimaryKey = New DataColumn() {idColumn} - Dim newRow As DataRow = table.NewRow() + oTable.PrimaryKey = New DataColumn() {oIdColumn} + Dim newRow As DataRow = oTable.NewRow() newRow("ConfigName") = "MyConnectionString" newRow("Value") = "" - table.Rows.Add(newRow) - Dim newRow1 As DataRow = table.NewRow() + oTable.Rows.Add(newRow) + Dim newRow1 As DataRow = oTable.NewRow() newRow1("ConfigName") = "LogErrorsOnly" newRow1("Value") = "True" - table.Rows.Add(newRow1) - Dim newRow2 As DataRow = table.NewRow() + oTable.Rows.Add(newRow1) + Dim newRow2 As DataRow = oTable.NewRow() newRow2("ConfigName") = "UniversalViewer" newRow2("Value") = "" - table.Rows.Add(newRow2) - Dim newRow3 As DataRow = table.NewRow() + oTable.Rows.Add(newRow2) + Dim newRow3 As DataRow = oTable.NewRow() newRow3("ConfigName") = "PDFXChangeViewer" newRow3("Value") = "" - table.Rows.Add(newRow3) - Dim newRow7 As DataRow = table.NewRow() + oTable.Rows.Add(newRow3) + Dim newRow7 As DataRow = oTable.NewRow() newRow7("ConfigName") = "SumatraViewer" newRow7("Value") = "" - table.Rows.Add(newRow7) - Dim newRow4 As DataRow = table.NewRow() + oTable.Rows.Add(newRow7) + Dim newRow4 As DataRow = oTable.NewRow() newRow4("ConfigName") = "PDFViewer_ZoomMode" newRow4("Value") = "3" - table.Rows.Add(newRow4) - Dim newRow5 As DataRow = table.NewRow() + oTable.Rows.Add(newRow4) + Dim newRow5 As DataRow = oTable.NewRow() newRow5("ConfigName") = "vpdfviewer" newRow5("Value") = "internal" - table.Rows.Add(newRow5) - Dim newRow6 As DataRow = table.NewRow() + oTable.Rows.Add(newRow5) + Dim newRow6 As DataRow = oTable.NewRow() newRow6("ConfigName") = "Viewer" newRow6("Value") = "docview" - table.Rows.Add(newRow6) - Dim newRow8 As DataRow = table.NewRow() + oTable.Rows.Add(newRow6) + Dim newRow8 As DataRow = oTable.NewRow() newRow8("ConfigName") = "IDX_DMS_ERSTELLT" newRow8("Value") = "DMS erstellt" - table.Rows.Add(newRow8) - Dim newRow9 As DataRow = table.NewRow() + oTable.Rows.Add(newRow8) + Dim newRow9 As DataRow = oTable.NewRow() newRow9("ConfigName") = "IDX_DMS_ERSTELLT_ZEIT" newRow9("Value") = "DMS erstellt (Zeit)" - table.Rows.Add(newRow9) - Dim newRow10 As DataRow = table.NewRow() + oTable.Rows.Add(newRow9) + Dim newRow10 As DataRow = oTable.NewRow() newRow10("ConfigName") = "USRMNGRPATH" newRow10("Value") = "" - table.Rows.Add(newRow10) - table.AcceptChanges() - Return table + oTable.Rows.Add(newRow10) + oTable.AcceptChanges() + Return oTable Catch ex As Exception MsgBox("Error in CreateConfigTable" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return Nothing End Try End Function + + ''' + ''' Save settings to user config, NOT to common config + ''' Public Function SaveMySettingsValue(name As String, value As String) Try - Dim DT As DataTable - DT = GetTablefromXML() + Dim oConfigPath = GetUserConfigPath() + Dim oDatatable As DataTable = GetTablefromXML(oConfigPath) - For Each Row As DataRow In DT.Rows + For Each Row As DataRow In oDatatable.Rows If Row.Item("ConfigName") = name Then Row.Item("Value") = value End If Next - DT.AcceptChanges() - DT.WriteXml(ConfigPath) + oDatatable.AcceptChanges() + oDatatable.WriteXml(oConfigPath) + Return True Catch ex As Exception MsgBox("Error in SaveConfigValue" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try - Return True - End Function End Module diff --git a/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb b/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb index 01ad200..2d9229d 100644 --- a/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb +++ b/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index d15336c..e39d587 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -35,7 +35,7 @@ Public Class frmMain Catch ex As Exception ClassLogger.Add("Error in Save FormLayout: " & ex.Message) End Try - If WINDREAM.oSession.aLoggedin = True Then + If WINDREAM?.oSession?.aLoggedin = True Then WINDREAM.Stop_WMCC_andCo() End If 'If _windreamPM.oSession.aLoggedin = True Then