mirror of
https://github.com/romanlryji/EventLogLoader.git
synced 2024-11-24 08:32:52 +02:00
clean up
This commit is contained in:
parent
bdf8b47353
commit
0e8e286d57
@ -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
|
||||
|
@ -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">
|
||||
|
@ -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" />
|
||||
|
@ -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
|
||||
|
220
EventLogLoaderManager/Installer.vb
Normal file
220
EventLogLoaderManager/Installer.vb
Normal 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
|
||||
|
248
EventLogLoaderManager/ServiceDescriptionClass.vb
Normal file
248
EventLogLoaderManager/ServiceDescriptionClass.vb
Normal 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
|
48
EventLogLoaderService/ConfigSettings.vb
Normal file
48
EventLogLoaderService/ConfigSettings.vb
Normal 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
|
@ -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>
|
||||
|
188
EventLogLoaderService/Parser.vb
Normal file
188
EventLogLoaderService/Parser.vb
Normal 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
|
@ -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
|
||||
|
||||
s = Param.RestoreIniValue(Param, "GlobalValues", "ConnectionString")
|
||||
If Not s = "" Then
|
||||
ConnectionString = s
|
||||
End If
|
||||
|
||||
s = Param.RestoreIniValue(Param, "GlobalValues", "DBType")
|
||||
If Not s = "" Then
|
||||
DBType = s
|
||||
ConnectionString = ConfigSettingObj.ConnectionString
|
||||
|
||||
DBType = ConfigSettingObj.DBType
|
||||
If DBType = "MySQL" Then
|
||||
ItIsMySQL = True
|
||||
ElseIf DBType = "MS SQL Server" Then
|
||||
ItIsMSSQL = True
|
||||
End If
|
||||
End If
|
||||
|
||||
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 s = ConfigSettingObj.RepeatTime
|
||||
SleepTime = s * 1000
|
||||
|
||||
Dim CountStr = Param.RestoreIniValue(Param, "GlobalValues", "DatabaseCount")
|
||||
Dim Count As Integer = Convert.ToInt32(IIf(CountStr = "", "0", CountStr))
|
||||
Dim i = 0
|
||||
For Each IBConfig In ConfigSettingObj.Infobases
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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" />
|
||||
|
Loading…
Reference in New Issue
Block a user