Merge pull request #9198 from Howard302/feature/esc-cancel-launch

feat: 在启动页面按 Esc 取消启动游戏
This commit is contained in:
龙腾猫跃
2026-09-03 21:39:12 +08:00
committed by GitHub
3 changed files with 28 additions and 15 deletions
+8 -2
View File
@@ -803,8 +803,14 @@ Public Class FormMain
' 在没有弹窗时:继续检查……
'==========================
'按 ESC 返回上一级
If e.Key = Key.Escape Then TriggerPageBack()
'按 ESC:启动中则取消启动,否则返回上一级
If e.Key = Key.Escape Then
If McLaunchLoader.State = LoadState.Loading Then
McLaunchCancel()
Else
TriggerPageBack()
End If
End If
'更改隐藏版本可见性
If e.Key = Key.F11 AndAlso PageCurrent = FormMain.PageType.InstanceSelect Then
FrmSelectRight.ShowHidden = Not FrmSelectRight.ShowHidden
@@ -196,6 +196,25 @@ NextInner:
End Try
End Sub
''' <summary>
''' 取消正在进行的游戏启动。
''' </summary>
Public Sub McLaunchCancel()
If McLaunchLoaderReal IsNot Nothing Then
McLaunchLoaderReal.Cancel()
McLaunchLog("已取消启动")
Try
If McLaunchWatcher IsNot Nothing Then
McLaunchWatcher.Kill()
ElseIf McLaunchProcess IsNot Nothing Then
If Not McLaunchProcess.HasExited Then McLaunchProcess.Kill()
End If
Catch ex As Exception
Logger.Error(ex, "取消启动结束进程失败", LogBehavior.Toast)
End Try
End If
End Sub
#End Region
#Region "内存优化"
@@ -692,19 +692,7 @@ ExitRefresh:
End Sub
'取消按钮
Private Sub BtnCancel_Click() Handles BtnCancel.Click
If McLaunchLoaderReal IsNot Nothing Then
McLaunchLoaderReal.Cancel()
McLaunchLog("已取消启动")
Try
If McLaunchWatcher IsNot Nothing Then
McLaunchWatcher.Kill()
ElseIf McLaunchProcess IsNot Nothing Then
If Not McLaunchProcess.HasExited Then McLaunchProcess.Kill()
End If
Catch ex As Exception
Logger.Error(ex, "取消启动结束进程失败", LogBehavior.Toast)
End Try
End If
McLaunchCancel()
End Sub
'版本设置按钮
Private Sub BtnMore_Click() Handles BtnMore.Click