1
0
mirror of https://github.com/romanlryji/EventLogLoader.git synced 2024-11-24 08:32:52 +02:00
This commit is contained in:
Alex Bochkov 2016-12-25 13:12:43 -08:00
parent bdf8b47353
commit 0e8e286d57
12 changed files with 787 additions and 224 deletions

View File

@ -1,20 +1,14 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EventLogLoaderDebug", "EventLogLoader\EventLogLoaderDebug.vbproj", "{2CE569B2-834D-4FE6-A23F-ACC68E8BDA9E}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EventLogLoaderManager", "EventLogLoaderManager\EventLogLoaderManager.vbproj", "{AF261326-5435-43E2-8407-4F0DFAED7B29}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "IniFile", "IniFile\IniFile.vbproj", "{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EventLogLoaderService", "EventLogLoaderService\EventLogLoaderService.vbproj", "{F7EF5930-B310-4697-B522-2325EAF247F2}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Installer", "Installer\Installer.vbproj", "{593952E2-6C95-4496-BFD5-C8C64DF78DE5}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Service1C", "Service1C\Service1C.vbproj", "{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parser", "Parser\Parser.vbproj", "{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -45,16 +39,6 @@ Global
{AF261326-5435-43E2-8407-4F0DFAED7B29}.Release|Mixed Platforms.Build.0 = Release|x86
{AF261326-5435-43E2-8407-4F0DFAED7B29}.Release|x86.ActiveCfg = Release|x86
{AF261326-5435-43E2-8407-4F0DFAED7B29}.Release|x86.Build.0 = Release|x86
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Debug|x86.ActiveCfg = Debug|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Release|Any CPU.Build.0 = Release|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}.Release|x86.ActiveCfg = Release|Any CPU
{F7EF5930-B310-4697-B522-2325EAF247F2}.Debug|Any CPU.ActiveCfg = Debug|x86
{F7EF5930-B310-4697-B522-2325EAF247F2}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{F7EF5930-B310-4697-B522-2325EAF247F2}.Debug|Mixed Platforms.Build.0 = Debug|x86
@ -65,36 +49,6 @@ Global
{F7EF5930-B310-4697-B522-2325EAF247F2}.Release|Mixed Platforms.Build.0 = Release|x86
{F7EF5930-B310-4697-B522-2325EAF247F2}.Release|x86.ActiveCfg = Release|x86
{F7EF5930-B310-4697-B522-2325EAF247F2}.Release|x86.Build.0 = Release|x86
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Debug|x86.ActiveCfg = Debug|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Release|Any CPU.Build.0 = Release|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{593952E2-6C95-4496-BFD5-C8C64DF78DE5}.Release|x86.ActiveCfg = Release|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Debug|x86.ActiveCfg = Debug|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Release|Any CPU.Build.0 = Release|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}.Release|x86.ActiveCfg = Release|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Debug|x86.ActiveCfg = Debug|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Release|Any CPU.Build.0 = Release|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -158,10 +158,6 @@
<Project>{F7EF5930-B310-4697-B522-2325EAF247F2}</Project>
<Name>EventLogLoaderService</Name>
</ProjectReference>
<ProjectReference Include="..\IniFile\IniFile.vbproj">
<Project>{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}</Project>
<Name>IniFile</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@ -69,6 +69,10 @@
<ApplicationIcon>Untitled - 5.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="MySql.Data, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\MySql.Data.6.9.5\lib\net20\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net35\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
@ -113,6 +117,8 @@
<Compile Include="AddPath.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="ServiceDescriptionClass.vb" />
<Compile Include="Installer.vb" />
<Compile Include="Form1.vb">
<SubType>Form</SubType>
</Compile>
@ -170,18 +176,6 @@
<Project>{F7EF5930-B310-4697-B522-2325EAF247F2}</Project>
<Name>EventLogLoaderService</Name>
</ProjectReference>
<ProjectReference Include="..\IniFile\IniFile.vbproj">
<Project>{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}</Project>
<Name>IniFile</Name>
</ProjectReference>
<ProjectReference Include="..\Installer\Installer.vbproj">
<Project>{593952E2-6C95-4496-BFD5-C8C64DF78DE5}</Project>
<Name>Installer</Name>
</ProjectReference>
<ProjectReference Include="..\Service1C\Service1C.vbproj">
<Project>{7261F9CC-9B2F-4FA5-ADD3-9FCF4948623F}</Project>
<Name>Service1C</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />

View File

@ -4,73 +4,30 @@ Imports System.Management
Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient
Imports System.Net
Imports EventLogLoaderService
Public Class Form1
Dim ArrayServices() As Service1C.ServiceDescriptionClass
Dim PathIniFile = Path.Combine(My.Application.Info.DirectoryPath, "setting.ini")
Dim IniFile As IniFile.IniFileClass = New IniFile.IniFileClass
Dim ArrayServices() As ServiceDescriptionClass
Dim PathConfigFile = Path.Combine(My.Application.Info.DirectoryPath, "config.json")
Dim GroupExtraPath As ListViewGroup
Structure InfobaseParams
Dim Guid As String
Dim Name As String
Dim CatalogEventlog As String
Dim Found As Boolean
End Structure
Dim ArrayInfoBaseParamSaved As List(Of InfobaseParams) = New List(Of InfobaseParams)
Dim ConfigSetting As ConfigSetting = New ConfigSetting
Sub LoadFromIniFile()
If My.Computer.FileSystem.FileExists(PathIniFile) Then
IniFile.Load(PathIniFile)
ConfigSetting = ConfigSettingsModule.LoadConfigSettingFromFile(PathConfigFile)
Dim s = IniFile.RestoreIniValue(IniFile, "GlobalValues", "ConnectionString")
If Not s = "" Then
ConnectionStringBox.Text = s
End If
s = IniFile.RestoreIniValue(IniFile, "GlobalValues", "DBType")
If Not s = "" Then
DBType.Text = s
End If
Try
s = IniFile.RestoreIniValue(IniFile, "GlobalValues", "RepeatTime")
If Not s = "" Then
RepeatTime.Text = Convert.ToInt32(s).ToString
End If
Catch ex As Exception
RepeatTime.Text = 60
End Try
Dim i = 0
s = IniFile.RestoreIniValue(IniFile, "GlobalValues", "DatabaseCount")
If Not s = "" Then
i = Convert.ToInt32(s)
End If
For j = 1 To i
Dim IB = New InfobaseParams
IB.Guid = IniFile.RestoreIniValue(IniFile, "Databases", "DatabaseID" + j.ToString)
IB.Name = IniFile.RestoreIniValue(IniFile, "Databases", "DatabaseName" + j.ToString)
IB.CatalogEventlog = IniFile.RestoreIniValue(IniFile, "Databases", "DatabaseCatalog" + j.ToString)
ArrayInfoBaseParamSaved.Add(IB)
Next
End If
ConnectionStringBox.Text = ConfigSetting.ConnectionString
DBType.Text = ConfigSetting.DBType
RepeatTime.Text = ConfigSetting.RepeatTime.ToString
End Sub
Function FindInfobase(Guid As String) As Service1C.ServiceDescriptionClass.Infobases
Function FindInfobase(Guid As String) As ServiceDescriptionClass.Infobases
FindInfobase = New Service1C.ServiceDescriptionClass.Infobases
FindInfobase = New ServiceDescriptionClass.Infobases
For Each Srv In ArrayServices
If Not Srv.ArrayInfobases Is Nothing Then
@ -90,53 +47,40 @@ Public Class Form1
FindInfobaseInSavedParams = False
For i = 0 To ArrayInfoBaseParamSaved.Count - 1
Dim IB = ArrayInfoBaseParamSaved(i)
If IB.Guid = Guid Then
For Each IB In ConfigSetting.Infobases
If IB.DatabaseID = Guid Then
IB.Found = True
ArrayInfoBaseParamSaved(i) = IB
Return True
End If
Next
'For Each Ib In ArrayInfoBaseParamSaved
' If Ib.Guid = Guid Then
' Ib.Found = True
' Return True
' End If
'Next
End Function
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If My.Computer.FileSystem.FileExists(PathIniFile) Then
IniFile.Load(PathIniFile)
IniFile.RemoveAllSections()
End If
Dim ConfigSetting = New ConfigSetting
ConfigSetting.ConnectionString = ConnectionStringBox.Text.Trim
ConfigSetting.DBType = DBType.Text.Trim
IniFile.AddSection("GlobalValues").AddKey("ConnectionString").Value = ConnectionStringBox.Text.Trim
IniFile.AddSection("GlobalValues").AddKey("DBType").Value = DBType.Text.Trim
Dim i = 0
For Each Item As ListViewItem In ListView.Items
If Item.Checked Then
i = i + 1
Dim IBSetting = New ConfigSettingsModule.InfobaseSetting
IBSetting.DatabaseID = Item.SubItems(1).Text
IBSetting.DatabaseName = Item.SubItems(0).Text
IBSetting.DatabaseCatalog = Item.SubItems(4).Text
IniFile.AddSection("Databases").AddKey("DatabaseID" + i.ToString).Value = Item.SubItems(1).Text
IniFile.AddSection("Databases").AddKey("DatabaseName" + i.ToString).Value = Item.SubItems(0).Text
IniFile.AddSection("Databases").AddKey("DatabaseCatalog" + i.ToString).Value = Item.SubItems(4).Text
ConfigSetting.Infobases.Add(IBSetting)
End If
Next
IniFile.AddSection("GlobalValues").AddKey("DatabaseCount").Value = i
Dim Rep = Convert.ToInt32(RepeatTime.Text)
IniFile.AddSection("GlobalValues").AddKey("RepeatTime").Value = IIf(Rep = 0, 60, Rep)
ConfigSetting.RepeatTime = IIf(Rep = 0, 60, Rep)
ConfigSettingsModule.SaveConfigSettingToFile(ConfigSetting, PathConfigFile)
IniFile.Save(PathIniFile)
Dim sc = New System.ServiceProcess.ServiceController("EventLog loader service")
Try
@ -166,10 +110,10 @@ Public Class Form1
Dim User = "LocalSystem"
Dim Pwd = ""
If Not Installer.ObjTec.Services.ServiceInstaller.InstallService(PathName, ServName, DisplayName, lpDependencies, User, Pwd) Then
If Not ObjTec.Services.ServiceInstaller.InstallService(PathName, ServName, DisplayName, lpDependencies, User, Pwd) Then
Dim ErrorCode = Marshal.GetLastWin32Error()
MsgBox("Ошибка установки службы Windows: " + Installer.ObjTec.Services.ServiceInstaller.GetErrorDescription(ErrorCode), , Text)
MsgBox("Ошибка установки службы Windows: " + ObjTec.Services.ServiceInstaller.GetErrorDescription(ErrorCode), , Text)
Else
@ -184,10 +128,10 @@ Public Class Form1
Dim ServName = "EventLog loader service"
If Not Installer.ObjTec.Services.ServiceInstaller.UninstallService(ServName) Then
If Not ObjTec.Services.ServiceInstaller.UninstallService(ServName) Then
Dim ErrorCode = Marshal.GetLastWin32Error()
MsgBox("Ошибка удаления службы Windows: " + Installer.ObjTec.Services.ServiceInstaller.GetErrorDescription(ErrorCode), , Text)
MsgBox("Ошибка удаления службы Windows: " + ObjTec.Services.ServiceInstaller.GetErrorDescription(ErrorCode), , Text)
Else
@ -226,7 +170,7 @@ Public Class Form1
Dim PathName As String = info("PathName")
Dim DisplayName As String = info("DisplayName")
Dim Serv = New Service1C.ServiceDescriptionClass
Dim Serv = New ServiceDescriptionClass
Serv.Name = info("Name")
Serv.DisplayName = info("DisplayName")
Serv.Description = info("Description")
@ -281,29 +225,24 @@ Public Class Form1
GroupExtraPath = New ListViewGroup("Дополнительные пути для загрузки событий из ЖР")
ListView.Groups.Add(GroupExtraPath)
For Each Ib In ArrayInfoBaseParamSaved
If Not Ib.Found Then
Dim item1 = New ListViewItem(Ib.Name, GroupExtraPath)
For Each IB In ConfigSetting.Infobases
If Not IB.Found Then
Dim item1 = New ListViewItem(IB.DatabaseName, GroupExtraPath)
item1.Checked = True
item1.SubItems.Add(Ib.Guid)
item1.SubItems.Add(IB.DatabaseID)
item1.SubItems.Add("")
item1.SubItems.Add(CalcullateFolderSize(Ib.CatalogEventlog))
item1.SubItems.Add(Ib.CatalogEventlog)
item1.SubItems.Add(CalcullateFolderSize(IB.DatabaseCatalog))
item1.SubItems.Add(IB.DatabaseCatalog)
ListView.Items.Add(item1)
End If
Next
End Sub
Private Function LoadFileInfobasesList() As List(Of Service1C.ServiceDescriptionClass.Infobases)
Private Function LoadFileInfobasesList() As List(Of ServiceDescriptionClass.Infobases)
Dim Result As List(Of Service1C.ServiceDescriptionClass.Infobases) = New List(Of Service1C.ServiceDescriptionClass.Infobases)
Dim Result As List(Of ServiceDescriptionClass.Infobases) = New List(Of ServiceDescriptionClass.Infobases)
'Try
@ -313,7 +252,7 @@ Public Class Form1
Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(IbasesListPath)
Dim aa As String = ""
Dim Infobase As Service1C.ServiceDescriptionClass.Infobases = Nothing
Dim Infobase As ServiceDescriptionClass.Infobases = Nothing
Try
Do
@ -328,7 +267,7 @@ Public Class Form1
Result.Add(Infobase)
End If
Infobase = New Service1C.ServiceDescriptionClass.Infobases
Infobase = New ServiceDescriptionClass.Infobases
Infobase.Name = a.Substring(1, a.Length - 2)
ElseIf a.StartsWith("Connect=File=") Then
'Connect=File="C:\Users\Alex\Documents\AS";
@ -355,7 +294,7 @@ Public Class Form1
Infobase.GUID = a.Substring(3)
End If
Catch ex As Exception
Infobase = New Service1C.ServiceDescriptionClass.Infobases
Infobase = New ServiceDescriptionClass.Infobases
End Try
aa = reader.ReadLine

View File

@ -0,0 +1,220 @@
Imports System
Imports System.Runtime.InteropServices
Namespace ObjTec.Services
Friend Class NativeMethods
Private Sub New()
End Sub
<DllImport("advapi32.dll", EntryPoint:="OpenSCManagerW", ExactSpelling:=True, CharSet:=CharSet.Unicode, SetLastError:=True)> _
Friend Shared Function OpenSCManager(machineName As String, databaseName As String, dwAccess As UInteger) As IntPtr
End Function
<DllImport("advapi32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Friend Shared Function CreateService(hSCManager As IntPtr, lpServiceName As String, lpDisplayName As String, dwDesiredAccess As UInteger, dwServiceType As UInteger, dwStartType As UInteger, _
dwErrorControl As UInteger, lpBinaryPathName As String, lpLoadOrderGroup As String, lpdwTagId As UInteger, lpDependencies As String, lpServiceStartName As String, _
lpPassword As String) As IntPtr
End Function
<DllImport("advapi32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Friend Shared Function ChangeServiceConfig(hService As IntPtr, dwServiceType As UInteger, dwStartType As UInteger, dwErrorControl As UInteger, _
lpBinaryPathName As String, lpLoadOrderGroup As String, lpdwTagId As UInteger, lpDependencies As String, lpServiceStartName As String, _
lpPassword As String, lpDisplayName As String) As IntPtr
End Function
<DllImport("advapi32.dll")> _
Friend Shared Function CloseServiceHandle(scHandle As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
<DllImport("advapi32", SetLastError:=True)> _
Friend Shared Function StartService(hService As IntPtr, dwNumServiceArgs As Integer, lpServiceArgVectors As String()) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
<DllImport("advapi32.dll", SetLastError:=True)> _
Friend Shared Function OpenService(scHandle As IntPtr, lpSvcName As String, dwNumServiceArgs As Integer) As IntPtr
End Function
<DllImport("advapi32.dll")> _
Friend Shared Function DeleteService(svHandle As IntPtr) As Integer
End Function
End Class
Public Class ServiceInstaller
Public Shared Function InstallService(svcPath As String, svcName As String, svcDispName As String, lpDependencies As String, User As String, Password As String) As Boolean
Dim SC_MANAGER_CREATE_SERVICE As UInteger = &H2
Dim SC_MANAGER_ALL_ACCESS As UInteger = &HF003F
Dim SERVICE_WIN32_OWN_PROCESS As UInteger = &H10
Dim SERVICE_ERROR_NORMAL As UInteger = &H1
Dim STANDARD_RIGHTS_REQUIRED As UInteger = &HF0000
Dim SERVICE_QUERY_CONFIG As UInteger = &H1
Dim SERVICE_CHANGE_CONFIG As UInteger = &H2
Dim SERVICE_QUERY_STATUS As UInteger = &H4
Dim SERVICE_ENUMERATE_DEPENDENTS As UInteger = &H8
Dim SERVICE_START As UInteger = &H10
Dim SERVICE_STOP As UInteger = &H20
Dim SERVICE_PAUSE_CONTINUE As UInteger = &H40
Dim SERVICE_INTERROGATE As UInteger = &H80
Dim SERVICE_USER_DEFINED_CONTROL As UInteger = &H100
Dim SERVICE_ALL_ACCESS As UInteger = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL)
Dim SERVICE_AUTO_START As UInteger = &H2
Dim sc_handle As IntPtr = NativeMethods.OpenSCManager(Nothing, Nothing, SC_MANAGER_ALL_ACCESS)
If Not sc_handle.Equals(IntPtr.Zero) Then
Dim sv_handle As IntPtr = NativeMethods.CreateService(sc_handle, svcName, svcDispName, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, _
SERVICE_ERROR_NORMAL, svcPath, Nothing, 0, lpDependencies, User, IIf(Password = "", Nothing, Password))
If sv_handle.Equals(IntPtr.Zero) Then
'Console.WriteLine(Marshal.GetLastWin32Error())
NativeMethods.CloseServiceHandle(sv_handle)
NativeMethods.CloseServiceHandle(sc_handle)
Return False
Else
'Dim test As Boolean = NativeMethods.StartService(sv_handle, 0, Nothing)
NativeMethods.CloseServiceHandle(sv_handle)
'If Not test Then
' Return False
'End If
NativeMethods.CloseServiceHandle(sc_handle)
Return True
End If
Else
Return False
End If
End Function
Public Shared Function TestConnection() As Boolean
Dim SC_MANAGER_CREATE_SERVICE As UInteger = &H2
Dim SC_MANAGER_ALL_ACCESS As UInteger = &HF003F
Dim SERVICE_WIN32_OWN_PROCESS As UInteger = &H10
Dim SERVICE_ERROR_NORMAL As UInteger = &H1
Dim STANDARD_RIGHTS_REQUIRED As UInteger = &HF0000
Dim SERVICE_QUERY_CONFIG As UInteger = &H1
Dim SERVICE_CHANGE_CONFIG As UInteger = &H2
Dim SERVICE_QUERY_STATUS As UInteger = &H4
Dim SERVICE_ENUMERATE_DEPENDENTS As UInteger = &H8
Dim SERVICE_START As UInteger = &H10
Dim SERVICE_STOP As UInteger = &H20
Dim SERVICE_PAUSE_CONTINUE As UInteger = &H40
Dim SERVICE_INTERROGATE As UInteger = &H80
Dim SERVICE_USER_DEFINED_CONTROL As UInteger = &H100
Dim SERVICE_ALL_ACCESS As UInteger = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL)
Dim SERVICE_AUTO_START As UInteger = &H2
Dim sc_handle As IntPtr = NativeMethods.OpenSCManager(Nothing, Nothing, SC_MANAGER_ALL_ACCESS)
If Not sc_handle.Equals(IntPtr.Zero) Then
Return True
Else
Return False
End If
End Function
Public Shared Function ChangeServiceParameters(svcPath As String, svcName As String, svcDispName As String, lpDependencies As String, User As String, Password As String) As Boolean
Dim SC_MANAGER_CREATE_SERVICE As UInteger = &H2
Dim SC_MANAGER_ALL_ACCESS As UInteger = &HF003F
Dim SERVICE_WIN32_OWN_PROCESS As UInteger = &H10
Dim SERVICE_ERROR_NORMAL As UInteger = &H1
Dim STANDARD_RIGHTS_REQUIRED As UInteger = &HF0000
Dim SERVICE_QUERY_CONFIG As UInteger = &H1
Dim SERVICE_CHANGE_CONFIG As UInteger = &H2
Dim SERVICE_QUERY_STATUS As UInteger = &H4
Dim SERVICE_ENUMERATE_DEPENDENTS As UInteger = &H8
Dim SERVICE_START As UInteger = &H10
Dim SERVICE_STOP As UInteger = &H20
Dim SERVICE_PAUSE_CONTINUE As UInteger = &H40
Dim SERVICE_INTERROGATE As UInteger = &H80
Dim SERVICE_USER_DEFINED_CONTROL As UInteger = &H100
Dim SERVICE_ALL_ACCESS As UInteger = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL)
Dim SERVICE_AUTO_START As UInteger = &H2
Dim GENERIC_WRITE As UInteger = &H40000000
Dim sc_hndl As IntPtr = NativeMethods.OpenSCManager(Nothing, Nothing, GENERIC_WRITE)
If sc_hndl.ToInt32() <> 0 Then
Dim svc_hndl As IntPtr = NativeMethods.OpenService(sc_hndl, svcName, SC_MANAGER_ALL_ACCESS)
If svc_hndl.ToInt32() <> 0 Then
Dim i As Integer = NativeMethods.ChangeServiceConfig(svc_hndl, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, _
SERVICE_ERROR_NORMAL, svcPath, Nothing, 0, lpDependencies, User, IIf(Password = "", Nothing, Password), svcDispName)
''ErrorCode = i
NativeMethods.CloseServiceHandle(svc_hndl)
If i <> 0 Then
NativeMethods.CloseServiceHandle(sc_hndl)
Return True
Else
NativeMethods.CloseServiceHandle(sc_hndl)
Return False
End If
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function UninstallService(svcName As String) As Boolean
Dim GENERIC_WRITE As UInteger = &H40000000
Dim sc_hndl As IntPtr = NativeMethods.OpenSCManager(Nothing, Nothing, GENERIC_WRITE)
If sc_hndl.ToInt32() <> 0 Then
Dim DELETE As Integer = &H10000
Dim svc_hndl As IntPtr = NativeMethods.OpenService(sc_hndl, svcName, DELETE)
If svc_hndl.ToInt32() <> 0 Then
Dim i As Integer = NativeMethods.DeleteService(svc_hndl)
NativeMethods.CloseServiceHandle(svc_hndl)
If i <> 0 Then
NativeMethods.CloseServiceHandle(sc_hndl)
Return True
Else
NativeMethods.CloseServiceHandle(sc_hndl)
Return False
End If
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function GetErrorDescription(ErrorNumber As Integer) As String
Dim Desc = ""
'If Procedure = "DeleteService" Then ' OpenService OpenSCManager ChangeServiceConfig CreateService
'End If
If ErrorNumber = 5 Then
'ERROR_ACCESS_DENIED
Desc = "The handle does not have access to the service."
ElseIf ErrorNumber = 1059 Then
'ERROR_CIRCULAR_DEPENDENCY
Desc = "A circular service dependency was specified."
ElseIf ErrorNumber = 1065 Then
'ERROR_DATABASE_DOES_NOT_EXIST
Desc = "The specified database does not exist."
ElseIf ErrorNumber = 1078 Then
'ERROR_DUPLICATE_SERVICE_NAME
Desc = "The display name already exists in the service control manager database either as a service name or as another display name."
ElseIf ErrorNumber = 6 Then
'ERROR_INVALID_HANDLE ---------------
Desc = "The handle to the specified service control manager database is invalid."
ElseIf ErrorNumber = 123 Then
'ERROR_INVALID_NAME
Desc = "The specified service name is invalid."
ElseIf ErrorNumber = 87 Then
'ERROR_INVALID_PARAMETER
Desc = "A parameter that was specified is invalid."
ElseIf ErrorNumber = 1057 Then
'ERROR_INVALID_SERVICE_ACCOUNT
Desc = "The account name does not exist, or a service is specified to share the same binary file as an already installed service but with an account name that is not the same as the installed service."
ElseIf ErrorNumber = 1060 Then
'ERROR_SERVICE_DOES_NOT_EXIST
Desc = "The specified service does not exist."
ElseIf ErrorNumber = 1072 Then
'ERROR_SERVICE_MARKED_FOR_DELETE
Desc = "The service has been marked for deletion."
ElseIf ErrorNumber = 1073 Then
'ERROR_SERVICE_EXISTS
Desc = "The specified service already exists in this database."
End If
GetErrorDescription = "" + ErrorNumber.ToString + " - " + Desc
End Function
End Class
End Namespace

View File

@ -0,0 +1,248 @@
Imports System.IO
Imports EventLogLoaderService
Public Class ServiceDescriptionClass
Public Name As String
Public DisplayName As String
Public Description As String
Public PathName As String
Public User As String
Public Debug As Boolean = False
Public ExeFile As String = ""
Public ClusterFiles As String = ""
Public PortAgent As Integer = 1540
Public PortMngr As Integer = 1541
Public PortProcessBegin As Integer = 1560
Public PortProcessEnd As Integer = 1591
Public Structure Infobases
Dim Name As String
Dim Description As String
Dim GUID As String
Dim SizeEventLog As Integer
Dim CatalogEventLog As String
End Structure
Public ArrayInfobases() As Infobases
Sub ParsePath()
Dim PathNameTemp = PathName.ToLower
If PathNameTemp.Contains("-debug") _
Or PathNameTemp.Contains("/debug") Then
Debug = True
PathNameTemp = PathNameTemp.Replace("-debug", "")
PathNameTemp = PathNameTemp.Replace("/debug", "")
End If
Dim Ind = PathNameTemp.IndexOf("ragent.exe")
If Ind > 0 Then
ExeFile = PathNameTemp.Substring(0, Ind + 10)
ExeFile = ExeFile.Replace("""", "")
PathNameTemp = PathNameTemp.Substring(Ind + 11)
End If
Ind = PathNameTemp.IndexOf("-regport")
If Ind > 0 Then
Dim PortStr = ""
Dim i = 0
Dim Simb = PathNameTemp.Substring(Ind + 8 + i, 1)
While "0123456789 ".Contains(Simb)
PortStr = PortStr + Simb
i = i + 1
Simb = PathNameTemp.Substring(Ind + 8 + i, 1)
End While
Try
PortMngr = Convert.ToInt32(PortStr)
Catch ex As Exception
End Try
End If
Ind = PathNameTemp.IndexOf("-port")
If Ind > 0 Then
Dim PortStr = ""
Dim i = 0
Dim Simb = PathNameTemp.Substring(Ind + 5 + i, 1)
While "0123456789 ".Contains(Simb)
PortStr = PortStr + Simb
i = i + 1
Simb = PathNameTemp.Substring(Ind + 5 + i, 1)
End While
Try
PortAgent = Convert.ToInt32(PortStr)
Catch ex As Exception
End Try
End If
Ind = PathNameTemp.IndexOf("-range")
If Ind > 0 Then
Dim PortStr = ""
Dim i = 0
Dim Simb = PathNameTemp.Substring(Ind + 6 + i, 1)
While "0123456789 :".Contains(Simb)
PortStr = PortStr + Simb
i = i + 1
Simb = PathNameTemp.Substring(Ind + 6 + i, 1)
End While
Try
Ind = PortStr.IndexOf(":")
PortProcessBegin = Convert.ToInt32(PortStr.Substring(0, Ind))
PortProcessEnd = Convert.ToInt32(PortStr.Substring(Ind + 1))
Catch ex As Exception
End Try
End If
Ind = PathNameTemp.IndexOf("-d")
If Ind > 0 Then
Dim PathStr = PathNameTemp.Substring(Ind + 2)
Dim Simb = PathStr.Substring(0, 1)
While " """.Contains(Simb)
PathStr = PathStr.Substring(2)
Simb = PathStr.Substring(1, 1)
End While
Ind = PathStr.IndexOf("""")
If Ind > 0 Then
ClusterFiles = PathStr.Substring(0, Ind)
End If
End If
'А теперь финт ушами - ищем полученные строки в иходной строке и вырезаем оттуда с корректным регистром
Ind = PathName.ToLower.IndexOf(ExeFile)
If Ind > 0 Then
ExeFile = PathName.Substring(Ind, ExeFile.Length)
End If
Ind = PathName.ToLower.IndexOf(ClusterFiles)
If Ind > 0 Then
ClusterFiles = PathName.Substring(Ind, ClusterFiles.Length)
End If
'"C:\Program Files\1cv82\8.2.17.153\bin\ragent.exe" -debug -srvc -agent
'-regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files\1cv82\srvinfo"
End Sub
Sub GetInfobases()
Try
Dim Catalog = Path.Combine(ClusterFiles, "reg_" + PortMngr.ToString)
Dim TMP = My.Computer.FileSystem.GetTempFileName()
'8.2
Dim ConfFilePath As String = Path.Combine(Catalog, "1CV8Reg.lst")
If My.Computer.FileSystem.FileExists(ConfFilePath) Then
My.Computer.FileSystem.CopyFile(ConfFilePath, TMP, True)
End If
'8.3
ConfFilePath = Path.Combine(Catalog, "1CV8Clst.lst")
If My.Computer.FileSystem.FileExists(ConfFilePath) Then
My.Computer.FileSystem.CopyFile(ConfFilePath, TMP, True)
End If
Dim Text = My.Computer.FileSystem.ReadAllText(TMP)
My.Computer.FileSystem.DeleteFile(TMP)
Dim Array = ParserServices.ParseString(Text)
Dim i = 0
For Each a In Array
If Not a Is Nothing Then
If a.Length = 11 And a(0).StartsWith("1.2.") Then
Dim IB = New Infobases
IB.Name = a(2).ToString
IB.GUID = a(1).ToString
IB.Description = a(3).ToString
IB.SizeEventLog = 0
Try
Dim SizeLog As UInt64 = 0
Dim CatalogEventLog = Path.Combine(Path.Combine(Catalog, IB.GUID), "1Cv8Log\")
IB.CatalogEventLog = CatalogEventLog
If My.Computer.FileSystem.DirectoryExists(CatalogEventLog) Then
For Each File In My.Computer.FileSystem.GetFiles(CatalogEventLog)
Dim FI = My.Computer.FileSystem.GetFileInfo(File)
SizeLog = SizeLog + FI.Length
Next
IB.SizeEventLog = Math.Round(SizeLog / 1024 / 1024, 2)
End If
Catch ex As Exception
End Try
ReDim Preserve ArrayInfobases(i)
ArrayInfobases(i) = IB
i = i + 1
End If
End If
Next
System.Array.Sort(ArrayInfobases)
Catch ex As Exception
End Try
End Sub
End Class

View File

@ -0,0 +1,48 @@
Imports Newtonsoft.Json
Public Module ConfigSettingsModule
Class InfobaseSetting
Public DatabaseID As String
Public DatabaseName As String
Public DatabaseCatalog As String
Public Found As Boolean
End Class
Class ConfigSetting
Public ConnectionString As String
Public DBType As String
Public RepeatTime As Integer
Public Infobases As List(Of InfobaseSetting)
Sub New()
Infobases = New List(Of InfobaseSetting)
End Sub
End Class
Public Function LoadConfigSettingFromFile(ConfigFilePath As String) As ConfigSetting
If My.Computer.FileSystem.FileExists(ConfigFilePath) Then
Dim JsonText = My.Computer.FileSystem.ReadAllText(ConfigFilePath)
Dim ConfigSettingObj = JsonConvert.DeserializeObject(Of ConfigSetting)(JsonText)
Return ConfigSettingObj
End If
Return Nothing
End Function
Public Sub SaveConfigSettingToFile(ConfigSettingObj As ConfigSetting, ConfigFilePath As String)
Dim JsonText As String = JsonConvert.SerializeObject(ConfigSettingObj, Formatting.Indented)
My.Computer.FileSystem.WriteAllText(ConfigFilePath, JsonText, False)
End Sub
End Module

View File

@ -102,10 +102,12 @@
<Import Include="System.Diagnostics" />
</ItemGroup>
<ItemGroup>
<Compile Include="ConfigSettings.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="Parser.vb" />
<Compile Include="ProjectInstaller.Designer.vb">
<DependentUpon>ProjectInstaller.vb</DependentUpon>
</Compile>
@ -159,16 +161,6 @@
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\IniFile\IniFile.vbproj">
<Project>{8119A1A1-E5D6-4269-9A5C-0F49E039E72D}</Project>
<Name>IniFile</Name>
</ProjectReference>
<ProjectReference Include="..\Parser\Parser.vbproj">
<Project>{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}</Project>
<Name>Parser</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>

View File

@ -0,0 +1,188 @@
Public Module ParserServices
Function ParseString(Text As String)
Dim Array(0)
If Not Text = "" Then
Dim RowArr(2)
Dim j = 0
Dim OpenBlock = False
Dim Level = 0
For i = 0 To Text.Length - 1
Dim Simb = Text.Substring(i, 1)
Dim SubStr = ""
If OpenBlock Then
If Simb = """" Then
OpenBlock = False
End If
Else
If Simb = "{" Then
Level = Level + 1
SubStr = "НачалоУровня"
ElseIf Simb = "}" Then
Level = Level - 1
SubStr = "ОкончаниеУровня"
ElseIf Simb = """" Then
OpenBlock = True
ElseIf Simb = "," Then
SubStr = "Разделитель"
End If
End If
If Not SubStr = "" Then
ReDim Preserve Array(j)
ReDim RowArr(2)
RowArr(0) = i
RowArr(1) = SubStr
RowArr(2) = Level
Array(j) = RowArr
j = j + 1
End If
Next
End If
Dim ArrayBases(0)
Dim ArrayRow(2)
Dim ArrayLines(0)
If Array.Length > 1 Then
Dim ArrayLevel(10) As Integer
Dim ArrayValue(0)
Dim Level = 0
' Dim CountLines = 0
Dim LastVal = 0
Dim StrLevel = ""
For Each a In Array
Select Case a(1)
Case "НачалоУровня"
If Not StrLevel = "" Then
ArrayValue(0) = StrLevel
ArrayLines(ArrayLines.Length - 1) = ArrayValue
ReDim Preserve ArrayLines(ArrayLines.Length)
End If
' CountLines = CountLines + 1
ArrayLevel(Level) = ArrayLevel(Level) + 1
Level = Level + 1
StrLevel = ""
For j = 0 To Level - 1
StrLevel = IIf(StrLevel = "", "", StrLevel + ".") + ArrayLevel(j).ToString
Next
ReDim ArrayValue(0)
Case "ОкончаниеУровня"
Dim TextStr = Text.Substring(LastVal + 1, a(0) - LastVal - 1)
TextStr = TextStr.Replace("""""", """")
If TextStr = """" Then TextStr = ""
If TextStr.StartsWith("""") And TextStr.EndsWith("""") Then
TextStr = TextStr.Substring(1, TextStr.Length - 2)
End If
'If Not TextStr = "" Then
ReDim Preserve ArrayValue(ArrayValue.Length)
ArrayValue(ArrayValue.Length - 1) = TextStr
'End If
ArrayValue(0) = StrLevel
ArrayLines(ArrayLines.Length - 1) = ArrayValue
ReDim Preserve ArrayLines(ArrayLines.Length)
'ArrayLevel(Level) = ArrayLevel(Level) - 1
ArrayLevel(Level) = 0
Level = Level - 1
ReDim ArrayValue(0)
StrLevel = ""
For j = 0 To Level - 1
StrLevel = IIf(StrLevel = "", "", StrLevel + ".") + ArrayLevel(j).ToString
Next
Case "Разделитель"
Dim TextStr = Text.Substring(LastVal + 1, a(0) - LastVal - 1)
TextStr = TextStr.Replace("""""", """")
If TextStr = """" Then TextStr = ""
If TextStr.StartsWith("""") And TextStr.EndsWith("""") Then
TextStr = TextStr.Substring(1, TextStr.Length - 2)
End If
'If Not TextStr = "" Then
ReDim Preserve ArrayValue(ArrayValue.Length)
ArrayValue(ArrayValue.Length - 1) = TextStr
'End If
End Select
LastVal = a(0)
Next
End If
Return ArrayLines
End Function
Function ParseEventlogString(Text As String)
Dim ArrayLines(0)
Dim Text2 = Text.Substring(1, IIf(Text.EndsWith(","), Text.Length - 3, Text.Length - 2)) + ","
Dim Str = ""
Dim Delim = Text2.IndexOf(",")
Dim i = 0
While Delim > 0
Str = Str + Text2.Substring(0, Delim)
Text2 = Text2.Substring(Delim + 1)
If CountSubstringInString(Str, "{") = CountSubstringInString(Str, "}") _
And Math.IEEERemainder(CountSubstringInString(Str, """"), 2) = 0 Then
ReDim Preserve ArrayLines(i)
ArrayLines(i) = Str.Trim
i = i + 1
Str = ""
Else
Str = Str + ","
End If
Delim = Text2.IndexOf(",")
End While
Return ArrayLines
End Function
Function CountSubstringInString(Str As String, SubStr As String)
CountSubstringInString = (Str.Length - Str.Replace(SubStr, "").Length) / SubStr.Length
End Function
End Module

View File

@ -600,7 +600,7 @@ Public Class EventLogLoaderService
' ReDim Preserve Events(Events.Length)
'End If
Dim Array = Parser.ParserServices.ParsesClass.ParseEventlogString(Str)
Dim Array = ParserServices.ParseEventlogString(Str)
OneEvent.DateTime = Date.ParseExact(Array(0), "yyyyMMddHHmmss", provider)
OneEvent.TransactionStatus = Array(1)
@ -1008,7 +1008,7 @@ Public Class EventLogLoaderService
FS.Close()
Dim ArrayLines = Parser.ParserServices.ParsesClass.ParseString(Text)
Dim ArrayLines = ParserServices.ParseString(Text)
Dim i = 0
For Each a In ArrayLines
@ -1442,59 +1442,42 @@ Public Class EventLogLoaderService
Dim ArrayIB() As InfoBaseEventlog
Dim ArrayThread() As Threading.Thread
Dim Param As IniFile.IniFileClass
Dim ConfigSettingObj As ConfigSetting = New ConfigSetting
Dim ConnectionString As String
Dim DBType As String
Dim ItIsMSSQL As Boolean = False
Dim ItIsMySQL As Boolean = False
Public SleepTime As Integer = 60 * 1000 '1 минута
Function LoadIniFileParams()
Function LoadConfigSetting()
LoadIniFileParams = False
LoadConfigSetting = False
Try
Param = New IniFile.IniFileClass
Dim PathIniFile = Path.Combine(My.Application.Info.DirectoryPath, "setting.ini")
If My.Computer.FileSystem.FileExists(PathIniFile) Then
Dim PathConfigFile = Path.Combine(My.Application.Info.DirectoryPath, "config.json")
If My.Computer.FileSystem.FileExists(PathConfigFile) Then
Param.Load(PathIniFile)
ConfigSettingObj = ConfigSettingsModule.LoadConfigSettingFromFile(PathConfigFile)
Dim s As String
ConnectionString = ConfigSettingObj.ConnectionString
s = Param.RestoreIniValue(Param, "GlobalValues", "ConnectionString")
If Not s = "" Then
ConnectionString = s
DBType = ConfigSettingObj.DBType
If DBType = "MySQL" Then
ItIsMySQL = True
ElseIf DBType = "MS SQL Server" Then
ItIsMSSQL = True
End If
s = Param.RestoreIniValue(Param, "GlobalValues", "DBType")
If Not s = "" Then
DBType = s
Dim s = ConfigSettingObj.RepeatTime
SleepTime = s * 1000
If DBType = "MySQL" Then
ItIsMySQL = True
ElseIf DBType = "MS SQL Server" Then
ItIsMSSQL = True
End If
End If
Dim i = 0
For Each IBConfig In ConfigSettingObj.Infobases
Try
s = Param.RestoreIniValue(Param, "GlobalValues", "RepeatTime")
If Not s = "" Then
SleepTime = Convert.ToInt32(s) * 1000
End If
Catch ex As Exception
End Try
Dim CountStr = Param.RestoreIniValue(Param, "GlobalValues", "DatabaseCount")
Dim Count As Integer = Convert.ToInt32(IIf(CountStr = "", "0", CountStr))
For i = 1 To Count
Dim IB_ID = Param.RestoreIniValue(Param, "Databases", "DatabaseID" + i.ToString)
Dim IB_Name = Param.RestoreIniValue(Param, "Databases", "DatabaseName" + i.ToString)
Dim IB_Catalog = Param.RestoreIniValue(Param, "Databases", "DatabaseCatalog" + i.ToString)
Dim IB_ID = IBConfig.DatabaseID
Dim IB_Name = IBConfig.DatabaseName
Dim IB_Catalog = IBConfig.DatabaseCatalog
Dim IB = New InfoBaseEventlog
IB.Log = NLog.LogManager.GetLogger("CurrentThread")
@ -1506,22 +1489,22 @@ Public Class EventLogLoaderService
IB.ItIsMSSQL = ItIsMSSQL
IB.ItIsMySQL = ItIsMySQL
ReDim Preserve ArrayIB(i - 1)
ArrayIB(i - 1) = IB
ReDim Preserve ArrayIB(i)
ArrayIB(i) = IB
i = i + 1
Next
LoadIniFileParams = True
LoadConfigSetting = True
Else
Log.Error("Файл setting.ini не найден")
Log.Error("Файл config.json не найден")
End If
Catch ex As Exception
Log.ErrorException("Ошибка загрузки параметров из ini-файла", ex)
Log.ErrorException("Ошибка загрузки параметров из config.json", ex)
End Try
End Function
Private WorkerThread As Thread
@ -1571,7 +1554,7 @@ Public Class EventLogLoaderService
'Log.Info("Запуск основного функционала")
If Not LoadIniFileParams() Then
If Not LoadConfigSetting() Then
Log.Error("Ошибка работы с файлом параметров setting.ini в каталоге приложения")
Environment.Exit(-1)
End If

View File

@ -1,4 +1,5 @@
Imports System.IO
Imports EventLogLoaderService
Public Class ServiceDescriptionClass
Public Name As String
@ -181,7 +182,7 @@ Public Class ServiceDescriptionClass
Dim Text = My.Computer.FileSystem.ReadAllText(TMP)
My.Computer.FileSystem.DeleteFile(TMP)
Dim Array = Parser.ParserServices.ParsesClass.ParseString(Text)
Dim Array = ParserServices.ParseString(Text)
Dim i = 0

View File

@ -97,9 +97,9 @@
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Parser\Parser.vbproj">
<Project>{3164BFA8-8AC5-4BC2-965A-15D40B6316AA}</Project>
<Name>Parser</Name>
<ProjectReference Include="..\EventLogLoaderService\EventLogLoaderService.vbproj">
<Project>{F7EF5930-B310-4697-B522-2325EAF247F2}</Project>
<Name>EventLogLoaderService</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />