|
1 | | -Imports PSMSVirtualDeviceManager.ClassLogDiagnostics |
| 1 | +Imports System.Text.RegularExpressions |
| 2 | +Imports PSMSVirtualDeviceManager.ClassLogDiagnostics |
2 | 3 |
|
3 | 4 | Public Class ClassLogProcesses |
4 | 5 | Implements ILogAction |
5 | 6 |
|
6 | 7 | Public Shared ReadOnly SECTION_PROCESSES As String = "Running Processes" |
7 | 8 | Public Shared ReadOnly LOG_ISSUE_BAD_SERVICE_PATH As String = "PSMoveServiceEx not installed using Virtual Device Manager" |
| 9 | + Public Shared ReadOnly LOG_ISSUE_BAD_SERVICE_VERSION As String = "Outdated PSMoveServiceEx version" |
| 10 | + Public Shared ReadOnly LOG_ISSUE_BAD_MANAGER_VERSION As String = "Outdated PSMoveServiceEx - Virtual Device Manager version" |
8 | 11 |
|
9 | 12 | Private g_mFormMain As FormMain |
10 | 13 | Private g_ClassLogContent As ClassLogContent |
@@ -72,6 +75,8 @@ Public Class ClassLogProcesses |
72 | 75 | Public Function GetIssues() As STRUC_LOG_ISSUE() Implements ILogAction.GetIssues |
73 | 76 | Dim mIssues As New List(Of STRUC_LOG_ISSUE) |
74 | 77 | mIssues.AddRange(CheckServicePath()) |
| 78 | + mIssues.AddRange(CheckServiceVersion()) |
| 79 | + mIssues.AddRange(CheckManagerVersion()) |
75 | 80 | Return mIssues.ToArray |
76 | 81 | End Function |
77 | 82 |
|
@@ -127,7 +132,94 @@ Public Class ClassLogProcesses |
127 | 132 | End If |
128 | 133 | End If |
129 | 134 |
|
| 135 | + Return mIssues.ToArray |
| 136 | + End Function |
| 137 | + |
| 138 | + Public Function CheckServiceVersion() As STRUC_LOG_ISSUE() |
| 139 | + Dim mIssues As New List(Of STRUC_LOG_ISSUE) |
| 140 | + |
| 141 | + Dim sContent As String = GetSectionContent() |
| 142 | + If (sContent Is Nothing) Then |
130 | 143 | Return mIssues.ToArray |
| 144 | + End If |
| 145 | + |
| 146 | + Dim mTemplate As New STRUC_LOG_ISSUE( |
| 147 | + LOG_ISSUE_BAD_SERVICE_VERSION, |
| 148 | + "This PSMoveServiceEx version is outdated (Current: v{0} / Newest: v{1}) and could still have issues that already have been fixed or missing new features.", |
| 149 | + "Udpate PSMoveServiceEx.", |
| 150 | + ENUM_LOG_ISSUE_TYPE.WARNING |
| 151 | + ) |
| 152 | + |
| 153 | + For Each mProcess In GetProcesses() |
| 154 | + Select Case (mProcess.sName.ToLowerInvariant) |
| 155 | + Case "PSMoveService".ToLowerInvariant, |
| 156 | + "PSMoveServiceAdmin".ToLowerInvariant |
| 157 | + Dim sCurrentVersion As String = mProcess.sFileVersion |
| 158 | + |
| 159 | + Try |
| 160 | + Dim sNextVersion As String = ClassUpdate.ClassPsms.GetNextVersion(Nothing) |
| 161 | + |
| 162 | + sNextVersion = Regex.Match(sNextVersion, "[0-9\.]+").Value |
| 163 | + sCurrentVersion = Regex.Match(sCurrentVersion, "[0-9\.]+").Value |
| 164 | + |
| 165 | + If (New Version(sNextVersion) > New Version(sCurrentVersion)) Then |
| 166 | + Dim mNewIssue As New STRUC_LOG_ISSUE(mTemplate) |
| 167 | + mNewIssue.sDescription = String.Format(mTemplate.sDescription, New Version(sCurrentVersion).ToString, New Version(sNextVersion).ToString) |
| 168 | + |
| 169 | + mIssues.Add(mNewIssue) |
| 170 | + End If |
| 171 | + Catch ex As Threading.ThreadAbortException |
| 172 | + Throw |
| 173 | + Catch ex As Exception |
| 174 | + ' Ignore any connection issues |
| 175 | + End Try |
| 176 | + End Select |
| 177 | + Next |
| 178 | + |
| 179 | + Return mIssues.ToArray |
| 180 | + End Function |
| 181 | + |
| 182 | + Public Function CheckManagerVersion() As STRUC_LOG_ISSUE() |
| 183 | + Dim mIssues As New List(Of STRUC_LOG_ISSUE) |
| 184 | + |
| 185 | + Dim sContent As String = GetSectionContent() |
| 186 | + If (sContent Is Nothing) Then |
| 187 | + Return mIssues.ToArray |
| 188 | + End If |
| 189 | + |
| 190 | + Dim mTemplate As New STRUC_LOG_ISSUE( |
| 191 | + LOG_ISSUE_BAD_MANAGER_VERSION, |
| 192 | + "This PSMoveServiceEx - Virtual Device Manager version is outdated (Current: v{0} / Newest: v{1}) and could still have issues that already have been fixed or missing new features.", |
| 193 | + "Udpate PSMoveServiceEx - Virtual Device Manager.", |
| 194 | + ENUM_LOG_ISSUE_TYPE.WARNING |
| 195 | + ) |
| 196 | + |
| 197 | + For Each mProcess In GetProcesses() |
| 198 | + Select Case (mProcess.sName.ToLowerInvariant) |
| 199 | + Case "PSMSVirtualDeviceManager".ToLowerInvariant |
| 200 | + Dim sCurrentVersion As String = mProcess.sFileVersion |
| 201 | + |
| 202 | + Try |
| 203 | + Dim sNextVersion As String = ClassUpdate.ClassVdm.GetNextVersion(Nothing) |
| 204 | + |
| 205 | + sNextVersion = Regex.Match(sNextVersion, "[0-9\.]+").Value |
| 206 | + sCurrentVersion = Regex.Match(sCurrentVersion, "[0-9\.]+").Value |
| 207 | + |
| 208 | + If (New Version(sNextVersion) > New Version(sCurrentVersion)) Then |
| 209 | + Dim mNewIssue As New STRUC_LOG_ISSUE(mTemplate) |
| 210 | + mNewIssue.sDescription = String.Format(mTemplate.sDescription, New Version(sCurrentVersion).ToString, New Version(sNextVersion).ToString) |
| 211 | + |
| 212 | + mIssues.Add(mNewIssue) |
| 213 | + End If |
| 214 | + Catch ex As Threading.ThreadAbortException |
| 215 | + Throw |
| 216 | + Catch ex As Exception |
| 217 | + ' Ignore any connection issues |
| 218 | + End Try |
| 219 | + End Select |
| 220 | + Next |
| 221 | + |
| 222 | + Return mIssues.ToArray |
131 | 223 | End Function |
132 | 224 |
|
133 | 225 | Public Function GetProcesses() As STRUC_PROCESS_ITEM() |
|
0 commit comments