From 0aabb69e16d87496b9a809216aea4b65f78e83e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=84=E5=A5=9A=E6=A2=A6=E7=81=B5?= Date: Sat, 22 Mar 2025 15:43:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(ShellOnly):=E5=8F=AA=E4=B8=BA=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=87=BA=E9=94=99=E7=9A=84=E9=83=A8=E5=88=86=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plain Craft Launcher 2/Modules/Base/ModBase.vb | 13 +++++-------- .../Modules/Minecraft/ModCrash.vb | 4 ++++ .../Modules/Minecraft/ModModpack.vb | 8 +++++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb index ff44061..09aaea3 100644 --- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb +++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb @@ -2333,14 +2333,11 @@ NextElement: Public Sub ShellOnly(FileName As String, Optional Arguments As String = "") FileName = ShortenPath(FileName) Using Program As New Process - Try - Program.StartInfo.Arguments = Arguments - Program.StartInfo.FileName = FileName - Log("[System] 执行外部命令:" & FileName & " " & Arguments) - Program.Start() - Catch ex As Exception - Log(ex, "执行外部命令失败", LogLevel.Msgbox) - End Try + Program.StartInfo.Arguments = Arguments + Program.StartInfo.FileName = FileName + Log("[System] 执行外部命令:" & FileName & " " & Arguments) + Program.Start() + End Using End Sub ''' diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb index 0093691..b380b0f 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb @@ -857,6 +857,7 @@ NextStack: "确定", If(IsHandAnalyze OrElse DirectFile Is Nothing, "", "查看日志"), If(IsHandAnalyze, "", "导出错误报告"), Button2Action:=If(IsHandAnalyze OrElse DirectFile Is Nothing, Nothing, Sub() + Try '弹窗选择:查看日志 If File.Exists(DirectFile.Value.Key) Then ShellOnly(DirectFile.Value.Key) @@ -865,6 +866,9 @@ NextStack: WriteFile(FilePath, Join(DirectFile.Value.Value, vbCrLf)) ShellOnly(FilePath) End If + Catch ex As Exception + Log(ex,"尝试打开文件失败",LogLevel.Hint) + End Try End Sub)) Case 3 '弹窗选择:导出错误报告 diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index 1d8dc13..7b1e0f7 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -828,7 +828,13 @@ Retry: Log("[Modpack] 找到压缩包中附带的启动器:" & Launcher) If MyMsgBox($"整合包里似乎自带了启动器,是否换用它继续安装?{vbCrLf}即将打开:{Launcher}", "换用整合包启动器?", "换用", "不换用") = 1 Then OpenExplorer(TargetFolder) - ShellOnly(Launcher, "--wait") '要求等待已有的 PCL 退出 + Try + ShellOnly(Launcher, "--wait") '要求等待已有的 PCL 退出 + Catch ex As Exception + Log(ex,"打开文件失败",LogLevel.MsgBox) + Finally + Return + End Try Log("[Modpack] 为换用整合包中的启动器启动,强制结束程序") FrmMain.EndProgram(False) Return