fix: 修复非Nvidia环境下无法启动

master
Tongg 4 months ago
parent e2569f11e5
commit e3c6590e0a
  1. 14
      LoginWindow.xaml.cs

@ -28,6 +28,8 @@ public partial class LoginWindow : Window
private void checkNvidia() private void checkNvidia()
{ {
string nvidiaVersion = ""; string nvidiaVersion = "";
try
{
using (Process process = new Process()) using (Process process = new Process())
{ {
process.StartInfo.FileName = "nvidia-smi"; process.StartInfo.FileName = "nvidia-smi";
@ -63,13 +65,14 @@ public partial class LoginWindow : Window
// 获取完整的输出和错误信息 // 获取完整的输出和错误信息
string outputMsg = outputBuilder.ToString(); string outputMsg = outputBuilder.ToString();
string errorMsg = errorBuilder.ToString(); string errorMsg = errorBuilder.ToString();
nvidiaVersion = (string.IsNullOrWhiteSpace(errorMsg)?outputMsg:errorMsg).Trim(); nvidiaVersion = (string.IsNullOrWhiteSpace(errorMsg) ? outputMsg : errorMsg).Trim();
if (process.ExitCode == 0 || !string.IsNullOrWhiteSpace(nvidiaVersion)) if (process.ExitCode == 0 || !string.IsNullOrWhiteSpace(nvidiaVersion))
{ {
if (CompareVersions(nvidiaVersion, "528.33") <= 0) if (CompareVersions(nvidiaVersion, "528.33") <= 0)
{ {
MessageBox messageBox = new MessageBox(); MessageBox messageBox = new MessageBox();
messageBox.Show(MultilingualHelper.getString("NotNvidiaVersionLow").Replace("%version", nvidiaVersion)); messageBox.Show(MultilingualHelper.getString("NotNvidiaVersionLow")
.Replace("%version", nvidiaVersion));
} }
} }
else else
@ -79,6 +82,13 @@ public partial class LoginWindow : Window
} }
} }
} }
catch (Exception ex)
{
Logger.Error(ex.Message);
MessageBox messageBox = new MessageBox();
messageBox.Show(MultilingualHelper.getString("NotNvidia"));
}
}
public static int CompareVersions(string versionA, string versionB) public static int CompareVersions(string versionA, string versionB)
{ {

Loading…
Cancel
Save