Skip to content

Commit b3551c4

Browse files
committed
Fixes
- Fixed possible crashes - Check for internet before loading URLs - Add missing 'wmic' command message for Windows 11 users
1 parent 4ee56c4 commit b3551c4

8 files changed

Lines changed: 748 additions & 583 deletions

File tree

PSX XMB Manager/Classes/Utils.vb

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Imports System.Drawing
33
Imports System.IO
44
Imports System.Net
5+
Imports System.Net.NetworkInformation
56
Imports System.Text.RegularExpressions
67

78
Public Class Utils
@@ -193,6 +194,9 @@ Public Class Utils
193194
ElseIf Line.Contains("Microsoft Virtual Disk") Then 'For testing with local VHD
194195
DriveID = Line.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries)(3).Trim()
195196
Exit For
197+
ElseIf Line.Contains("is not recognized") Then 'Windows 11 removed wmic, prompt for installation before continuing
198+
DriveID = "WMIC_INSTALL_REQUIRED"
199+
Exit For
196200
End If
197201
End If
198202
Next
@@ -229,48 +233,65 @@ Public Class Utils
229233
End Function
230234

231235
Public Shared Function GetResizedBitmap(ImageLocation As String, NewWidth As Integer, NewHeight As Integer) As Bitmap
232-
Dim Request As WebRequest = WebRequest.Create(ImageLocation)
233-
Dim Response As WebResponse = Request.GetResponse()
234-
Dim ResponseStream As Stream = Response.GetResponseStream()
236+
Try
237+
If NetworkInterface.GetIsNetworkAvailable Then
238+
Dim Request As WebRequest = WebRequest.Create(ImageLocation)
239+
Dim Response As WebResponse = Request.GetResponse()
240+
Dim ResponseStream As Stream = Response.GetResponseStream()
235241

236-
Dim OriginalBitmap As New Bitmap(ResponseStream)
237-
Dim ResizedBitmap As New Bitmap(OriginalBitmap, New Size(NewWidth, NewHeight))
242+
Dim OriginalBitmap As New Bitmap(ResponseStream)
243+
Dim ResizedBitmap As New Bitmap(OriginalBitmap, New Size(NewWidth, NewHeight))
238244

239-
Return ResizedBitmap
245+
Return ResizedBitmap
246+
Else
247+
Return Nothing
248+
End If
249+
Catch Ex As Exception
250+
Return Nothing
251+
End Try
240252
End Function
241253

242254
Public Shared Sub ConvertTo32bppAndDisposeOriginal(ByRef img As Bitmap)
243-
Dim bmp = New Bitmap(img.Width, img.Height, Imaging.PixelFormat.Format32bppArgb)
255+
Try
256+
Dim bmp = New Bitmap(img.Width, img.Height, Imaging.PixelFormat.Format32bppArgb)
244257

245-
Using gr = Graphics.FromImage(bmp)
246-
gr.DrawImage(img, New Rectangle(0, 0, 76, 108))
247-
End Using
258+
Using gr = Graphics.FromImage(bmp)
259+
gr.DrawImage(img, New Rectangle(0, 0, 76, 108))
260+
End Using
248261

249-
img.Dispose()
250-
img = bmp
262+
img.Dispose()
263+
img = bmp
264+
Catch ex As Exception
265+
img = Nothing
266+
End Try
251267
End Sub
252268

253269
Public Shared Function IsURLValid(Url As String) As Boolean
254270
Try
255-
Dim request As HttpWebRequest = CType(WebRequest.Create(Url), HttpWebRequest)
256-
Using response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
257-
If response.StatusCode = HttpStatusCode.OK Then
258-
Return True
259-
ElseIf response.StatusCode = HttpStatusCode.Found Then
260-
Return True
261-
ElseIf response.StatusCode = HttpStatusCode.NotFound Then
262-
Return False
263-
ElseIf response.StatusCode = HttpStatusCode.Unauthorized Then
264-
Return False
265-
ElseIf response.StatusCode = HttpStatusCode.Forbidden Then
266-
Return False
267-
ElseIf response.StatusCode = HttpStatusCode.BadGateway Then
268-
Return False
269-
ElseIf response.StatusCode = HttpStatusCode.BadRequest Then
270-
Return False
271-
End If
271+
If NetworkInterface.GetIsNetworkAvailable Then
272+
Dim request As HttpWebRequest = CType(WebRequest.Create(Url), HttpWebRequest)
273+
Using response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
274+
If response.StatusCode = HttpStatusCode.OK Then
275+
Return True
276+
ElseIf response.StatusCode = HttpStatusCode.Found Then
277+
Return True
278+
ElseIf response.StatusCode = HttpStatusCode.NotFound Then
279+
Return False
280+
ElseIf response.StatusCode = HttpStatusCode.Unauthorized Then
281+
Return False
282+
ElseIf response.StatusCode = HttpStatusCode.Forbidden Then
283+
Return False
284+
ElseIf response.StatusCode = HttpStatusCode.BadGateway Then
285+
Return False
286+
ElseIf response.StatusCode = HttpStatusCode.BadRequest Then
287+
Return False
288+
Else
289+
Return False
290+
End If
291+
End Using
292+
Else
272293
Return False
273-
End Using
294+
End If
274295
Catch Ex As Exception
275296
Return False
276297
End Try

0 commit comments

Comments
 (0)