From 2e9ca1345ccdec17cc4782b2c44df1750c43c2ef Mon Sep 17 00:00:00 2001 From: nanhuajiaren <49112307+nanhuajiaren@users.noreply.github.com> Date: Thu, 13 Mar 2025 15:33:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD=EF=BC=8C=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=86=99=E5=85=A5=E6=B3=A8=E5=86=8C=E8=A1=A8=E5=B0=86MC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA=E2=80=9C=E9=AB=98=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Minecraft/ModLaunch.vb | 46 +++++++++++++++++++ .../Pages/PageSetup/ModSetup.vb | 1 + .../Pages/PageSetup/PageSetupLaunch.xaml | 7 +++ .../Pages/PageSetup/PageSetupLaunch.xaml.vb | 6 ++- 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index 01b1bab..9d915ff 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -128,6 +128,10 @@ Public Module ModLaunch Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("内存优化", AddressOf McLaunchMemoryOptimize) With {.ProgressWeight = 30}) Case 2 '关闭 End Select + '显示设置 + If Setup.Get("LaunchGraphicSetup") Then + Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("检查显示设置", AddressOf McLaunchCheckGraphicSettings) With {.ProgressWeight = 2}) + End If Dim LaunchLoader As New LoaderCombo(Of Object)("Minecraft 启动", Loaders) With {.Show = False} If McLoginLoader.State = LoadState.Finished Then McLoginLoader.State = LoadState.Waiting '要求重启登录主加载器,它会自行决定是否启动副加载器 '等待加载器执行并更新 UI @@ -203,6 +207,48 @@ NextInner: #End Region +#Region "显示设置" + + Private Sub McLaunchCheckGraphicSettings(Loader As LoaderTask(Of Integer, Integer)) + Const GPU_KEY As String = "Software\Microsoft\DirectX\UserGpuPreferences" + Const TARGET_SETUP As String = "GpuPreference=2;" + Dim javaPath As String = McLaunchJavaSelected.PathJavaw + + McLaunchLog("显示设置开始") + '读取现行设置 + Try + Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser + Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, False) + If regKey IsNot Nothing Then + Dim currentSetting As Object = regKey.GetValue(javaPath) + If currentSetting IsNot Nothing And TARGET_SETUP.Equals(currentSetting.ToString()) Then + McLaunchLog("不需要调整显示设置") + Exit Sub + End If + regKey.Close() + End If + Catch ex As Exception + McLaunchLog("无法读取注册表,跳过显示设置") + Exit Sub + End Try + '更新设置 + Try + If Not IsAdmin() Then RunAsAdmin("") + Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser + Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, True) + If regKey Is Nothing Then + regKey = parentKey.CreateSubKey(GPU_KEY) + End If + regKey.SetValue(javaPath, TARGET_SETUP) + Catch ex As Exception + McLaunchLog("无法写入显示设置") + Exit Sub + End Try + McLaunchLog("已修改显示设置") + End Sub + +#End Region + #Region "预检测" Private Sub McLaunchPrecheck() diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index b23290e..39a4181 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -103,6 +103,7 @@ {"LaunchAdvanceRunWait", New SetupEntry(True)}, {"LaunchAdvanceAssets", New SetupEntry(False)}, {"LaunchAdvanceJava", New SetupEntry(False)}, + {"LaunchGraphicSetup", New SetupEntry(False)}, {"LaunchRamType", New SetupEntry(0)}, {"LaunchRamCustom", New SetupEntry(15)}, {"LinkEula", New SetupEntry(False, Source:=SetupSource.Registry)}, diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml index 8b692a4..254aa50 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml @@ -170,6 +170,13 @@ + + + + + + diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb index c36c123..2b52e3a 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb @@ -45,6 +45,9 @@ CType(FindName("RadioRamType" & Setup.Load("LaunchRamType")), MyRadioBox).Checked = True SliderRamCustom.Value = Setup.Get("LaunchRamCustom") + '显示卡 + CheckAdvanceGraphicSetup.Checked = Setup.Get("LaunchGraphicSetup") + '高级设置 TextAdvanceJvm.Text = Setup.Get("LaunchAdvanceJvm") TextAdvanceGame.Text = Setup.Get("LaunchAdvanceGame") @@ -83,6 +86,7 @@ Setup.Reset("LaunchAdvanceAssets") Setup.Reset("LaunchAdvanceRun") Setup.Reset("LaunchAdvanceRunWait") + Setup.Reset("LaunchGraphicSetup") Setup.Reset("LaunchArgumentJavaAll") Setup.Reset("LaunchArgumentJavaSelect") @@ -110,7 +114,7 @@ Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboArgumentVisibie.SelectionChanged, ComboArgumentWindowType.SelectionChanged, ComboArgumentPriority.SelectionChanged If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex) End Sub - Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change + Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change, CheckAdvanceGraphicSetup.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked) End Sub From 482812ce85cb55a87242aded99a80192752d5f3e Mon Sep 17 00:00:00 2001 From: nanhuajiaren <49112307+nanhuajiaren@users.noreply.github.com> Date: Thu, 13 Mar 2025 15:39:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?Revert=20"=E6=96=B0=E5=A2=9E=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E5=86=99=E5=85=A5=E6=B3=A8=E5=86=8C=E8=A1=A8=E5=B0=86?= =?UTF-8?q?MC=E8=AE=BE=E7=BD=AE=E4=B8=BA=E2=80=9C=E9=AB=98=E6=80=A7?= =?UTF-8?q?=E8=83=BD=E2=80=9D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2e9ca1345ccdec17cc4782b2c44df1750c43c2ef. --- .../Modules/Minecraft/ModLaunch.vb | 46 ------------------- .../Pages/PageSetup/ModSetup.vb | 1 - .../Pages/PageSetup/PageSetupLaunch.xaml | 7 --- .../Pages/PageSetup/PageSetupLaunch.xaml.vb | 6 +-- 4 files changed, 1 insertion(+), 59 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index 9d915ff..01b1bab 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -128,10 +128,6 @@ Public Module ModLaunch Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("内存优化", AddressOf McLaunchMemoryOptimize) With {.ProgressWeight = 30}) Case 2 '关闭 End Select - '显示设置 - If Setup.Get("LaunchGraphicSetup") Then - Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("检查显示设置", AddressOf McLaunchCheckGraphicSettings) With {.ProgressWeight = 2}) - End If Dim LaunchLoader As New LoaderCombo(Of Object)("Minecraft 启动", Loaders) With {.Show = False} If McLoginLoader.State = LoadState.Finished Then McLoginLoader.State = LoadState.Waiting '要求重启登录主加载器,它会自行决定是否启动副加载器 '等待加载器执行并更新 UI @@ -207,48 +203,6 @@ NextInner: #End Region -#Region "显示设置" - - Private Sub McLaunchCheckGraphicSettings(Loader As LoaderTask(Of Integer, Integer)) - Const GPU_KEY As String = "Software\Microsoft\DirectX\UserGpuPreferences" - Const TARGET_SETUP As String = "GpuPreference=2;" - Dim javaPath As String = McLaunchJavaSelected.PathJavaw - - McLaunchLog("显示设置开始") - '读取现行设置 - Try - Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser - Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, False) - If regKey IsNot Nothing Then - Dim currentSetting As Object = regKey.GetValue(javaPath) - If currentSetting IsNot Nothing And TARGET_SETUP.Equals(currentSetting.ToString()) Then - McLaunchLog("不需要调整显示设置") - Exit Sub - End If - regKey.Close() - End If - Catch ex As Exception - McLaunchLog("无法读取注册表,跳过显示设置") - Exit Sub - End Try - '更新设置 - Try - If Not IsAdmin() Then RunAsAdmin("") - Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser - Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, True) - If regKey Is Nothing Then - regKey = parentKey.CreateSubKey(GPU_KEY) - End If - regKey.SetValue(javaPath, TARGET_SETUP) - Catch ex As Exception - McLaunchLog("无法写入显示设置") - Exit Sub - End Try - McLaunchLog("已修改显示设置") - End Sub - -#End Region - #Region "预检测" Private Sub McLaunchPrecheck() diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index 39a4181..b23290e 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -103,7 +103,6 @@ {"LaunchAdvanceRunWait", New SetupEntry(True)}, {"LaunchAdvanceAssets", New SetupEntry(False)}, {"LaunchAdvanceJava", New SetupEntry(False)}, - {"LaunchGraphicSetup", New SetupEntry(False)}, {"LaunchRamType", New SetupEntry(0)}, {"LaunchRamCustom", New SetupEntry(15)}, {"LinkEula", New SetupEntry(False, Source:=SetupSource.Registry)}, diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml index 254aa50..8b692a4 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml @@ -170,13 +170,6 @@ - - - - - - diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb index 2b52e3a..c36c123 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb @@ -45,9 +45,6 @@ CType(FindName("RadioRamType" & Setup.Load("LaunchRamType")), MyRadioBox).Checked = True SliderRamCustom.Value = Setup.Get("LaunchRamCustom") - '显示卡 - CheckAdvanceGraphicSetup.Checked = Setup.Get("LaunchGraphicSetup") - '高级设置 TextAdvanceJvm.Text = Setup.Get("LaunchAdvanceJvm") TextAdvanceGame.Text = Setup.Get("LaunchAdvanceGame") @@ -86,7 +83,6 @@ Setup.Reset("LaunchAdvanceAssets") Setup.Reset("LaunchAdvanceRun") Setup.Reset("LaunchAdvanceRunWait") - Setup.Reset("LaunchGraphicSetup") Setup.Reset("LaunchArgumentJavaAll") Setup.Reset("LaunchArgumentJavaSelect") @@ -114,7 +110,7 @@ Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboArgumentVisibie.SelectionChanged, ComboArgumentWindowType.SelectionChanged, ComboArgumentPriority.SelectionChanged If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex) End Sub - Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change, CheckAdvanceGraphicSetup.Change + Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked) End Sub From 715c4666f3d0842f2c0cd7452e7d9282c08cab4b Mon Sep 17 00:00:00 2001 From: nanhuajiaren <49112307+nanhuajiaren@users.noreply.github.com> Date: Thu, 13 Mar 2025 15:33:01 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD=EF=BC=8C=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=86=99=E5=85=A5=E6=B3=A8=E5=86=8C=E8=A1=A8=E5=B0=86MC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA=E2=80=9C=E9=AB=98=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Minecraft/ModLaunch.vb | 46 +++++++++++++++++++ .../Pages/PageSetup/ModSetup.vb | 1 + .../Pages/PageSetup/PageSetupLaunch.xaml | 7 +++ .../Pages/PageSetup/PageSetupLaunch.xaml.vb | 6 ++- 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb index 01b1bab..9d915ff 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb @@ -128,6 +128,10 @@ Public Module ModLaunch Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("内存优化", AddressOf McLaunchMemoryOptimize) With {.ProgressWeight = 30}) Case 2 '关闭 End Select + '显示设置 + If Setup.Get("LaunchGraphicSetup") Then + Loaders.Insert(3, New LoaderTask(Of Integer, Integer)("检查显示设置", AddressOf McLaunchCheckGraphicSettings) With {.ProgressWeight = 2}) + End If Dim LaunchLoader As New LoaderCombo(Of Object)("Minecraft 启动", Loaders) With {.Show = False} If McLoginLoader.State = LoadState.Finished Then McLoginLoader.State = LoadState.Waiting '要求重启登录主加载器,它会自行决定是否启动副加载器 '等待加载器执行并更新 UI @@ -203,6 +207,48 @@ NextInner: #End Region +#Region "显示设置" + + Private Sub McLaunchCheckGraphicSettings(Loader As LoaderTask(Of Integer, Integer)) + Const GPU_KEY As String = "Software\Microsoft\DirectX\UserGpuPreferences" + Const TARGET_SETUP As String = "GpuPreference=2;" + Dim javaPath As String = McLaunchJavaSelected.PathJavaw + + McLaunchLog("显示设置开始") + '读取现行设置 + Try + Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser + Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, False) + If regKey IsNot Nothing Then + Dim currentSetting As Object = regKey.GetValue(javaPath) + If currentSetting IsNot Nothing And TARGET_SETUP.Equals(currentSetting.ToString()) Then + McLaunchLog("不需要调整显示设置") + Exit Sub + End If + regKey.Close() + End If + Catch ex As Exception + McLaunchLog("无法读取注册表,跳过显示设置") + Exit Sub + End Try + '更新设置 + Try + If Not IsAdmin() Then RunAsAdmin("") + Dim parentKey As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser + Dim regKey As Microsoft.Win32.RegistryKey = parentKey.OpenSubKey(GPU_KEY, True) + If regKey Is Nothing Then + regKey = parentKey.CreateSubKey(GPU_KEY) + End If + regKey.SetValue(javaPath, TARGET_SETUP) + Catch ex As Exception + McLaunchLog("无法写入显示设置") + Exit Sub + End Try + McLaunchLog("已修改显示设置") + End Sub + +#End Region + #Region "预检测" Private Sub McLaunchPrecheck() diff --git a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb index b23290e..39a4181 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/ModSetup.vb @@ -103,6 +103,7 @@ {"LaunchAdvanceRunWait", New SetupEntry(True)}, {"LaunchAdvanceAssets", New SetupEntry(False)}, {"LaunchAdvanceJava", New SetupEntry(False)}, + {"LaunchGraphicSetup", New SetupEntry(False)}, {"LaunchRamType", New SetupEntry(0)}, {"LaunchRamCustom", New SetupEntry(15)}, {"LinkEula", New SetupEntry(False, Source:=SetupSource.Registry)}, diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml index 8b692a4..254aa50 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml @@ -170,6 +170,13 @@ + + + + + + diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb index c36c123..2b52e3a 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb @@ -45,6 +45,9 @@ CType(FindName("RadioRamType" & Setup.Load("LaunchRamType")), MyRadioBox).Checked = True SliderRamCustom.Value = Setup.Get("LaunchRamCustom") + '显示卡 + CheckAdvanceGraphicSetup.Checked = Setup.Get("LaunchGraphicSetup") + '高级设置 TextAdvanceJvm.Text = Setup.Get("LaunchAdvanceJvm") TextAdvanceGame.Text = Setup.Get("LaunchAdvanceGame") @@ -83,6 +86,7 @@ Setup.Reset("LaunchAdvanceAssets") Setup.Reset("LaunchAdvanceRun") Setup.Reset("LaunchAdvanceRunWait") + Setup.Reset("LaunchGraphicSetup") Setup.Reset("LaunchArgumentJavaAll") Setup.Reset("LaunchArgumentJavaSelect") @@ -110,7 +114,7 @@ Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboArgumentIndie.SelectionChanged, ComboArgumentVisibie.SelectionChanged, ComboArgumentWindowType.SelectionChanged, ComboArgumentPriority.SelectionChanged If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex) End Sub - Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change + Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckAdvanceAssets.Change, CheckAdvanceJava.Change, CheckAdvanceRunWait.Change, CheckArgumentRam.Change, CheckAdvanceGraphicSetup.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked) End Sub