| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- Imports System.Reflection
- Class Application
- Private Sub Application_Startup(ByVal sender As Object, ByVal e As System.Windows.StartupEventArgs) Handles Me.Startup
- Try
- Process.GetCurrentProcess.PriorityClass = ProcessPriorityClass.High
- Application.Current.Dispatcher.Thread.Priority = ThreadPriority.AboveNormal
- '基础初始化
- AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolve '动态 DLL 调用
- LoadTimeCost = My.Computer.Clock.TickCount
- Directory.CreateDirectory(PATH & "PCL")
- Directory.CreateDirectory(PATH & "PCL\cache")
- Directory.CreateDirectory(PATH & "PCL\download")
- Try
- File.Delete(PATH & "PCL\log.txt")
- Catch
- End Try
- log("[Application] 程序启动,版本:" & VERSION_NAME & "(" & VERSION_CODE & ")")
- '读取设置
- MODE_DEBUG = ReadReg("SysTest", "False")
- MODE_DEVELOPER = File.Exists(PATH & "Plain Craft Launcher Developer Tag")
- '配置初始化
- Net.ServicePointManager.DefaultConnectionLimit = 1024
- Catch ex As Exception
- If MsgBox("程序初始化时出现异常:" & GetStringFromException(ex, True) & vbCrLf & "是否愿意打开反馈页面来反馈这个问题?" & vbCrLf & "这会帮助作者解决问题,否则它将永远不会得到解决!", MsgBoxStyle.Critical + MsgBoxStyle.YesNo, "炸了") = MsgBoxResult.Yes Then Feedback()
- End Try
- End Sub
- Private Sub Application_DispatcherUnhandledException(ByVal sender As Object, ByVal e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs) Handles Me.DispatcherUnhandledException
- On Error Resume Next
- log("[Application] 请把这个 Log 文件发送给作者,以助于改进这个启动器,谢谢~")
- log("[Application] 异常的详细信息:" & vbCrLf & GetStringFromException(e.Exception, True))
- If MsgBox("程序出现异常:" & GetStringFromException(e.Exception, True) & vbCrLf & "是否愿意打开反馈页面来反馈这个问题?" & vbCrLf & "这会帮助作者解决问题,否则它将永远不会得到解决!", MsgBoxStyle.Critical + MsgBoxStyle.YesNo, "炸了") = MsgBoxResult.Yes Then Feedback()
- EndForce()
- End Sub
- '动态 DLL 调用
- Private Ionic As Assembly = Assembly.Load(My.Resources.ResourceManager.GetObject("Ionic_Zip"))
- Private Newtonsoft As Assembly = Assembly.Load(My.Resources.ResourceManager.GetObject("Newtonsoft_Json"))
- Private Function AssemblyResolve(sender As Object, args As ResolveEventArgs) As Assembly
- Dim Name As String = New AssemblyName(args.Name).Name
- Select Case Name
- Case "Ionic.Zip"
- Return Ionic
- Case "Newtonsoft.Json"
- Return Newtonsoft
- Case Else
- Return Nothing
- End Select
- End Function
- End Class
|