Fix crash for gputemp reader

This commit is contained in:
seerge
2023-03-20 15:43:51 +01:00
parent 9189cf0a46
commit d82f1c8d70
3 changed files with 33 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
using System.ComponentModel; using GHelper;
using System.ComponentModel;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
@@ -263,6 +264,7 @@ namespace CustomControls
protected override void OnPaint(PaintEventArgs pevent) protected override void OnPaint(PaintEventArgs pevent)
{ {
base.OnPaint(pevent); base.OnPaint(pevent);
float ratio = pevent.Graphics.DpiX / 192.0f; float ratio = pevent.Graphics.DpiX / 192.0f;
@@ -284,6 +286,19 @@ namespace CustomControls
pevent.Graphics.DrawPath(penSurface, pathSurface); pevent.Graphics.DrawPath(penSurface, pathSurface);
pevent.Graphics.DrawPath(penBorder, pathBorder); pevent.Graphics.DrawPath(penBorder, pathBorder);
} }
if (!Enabled && ForeColor != SystemColors.ControlText)
{
var rect = pevent.ClipRectangle;
if (Image is not null) {
rect.Y += Image.Height;
rect.Height -= Image.Height;
}
TextFormatFlags flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak;
TextRenderer.DrawText(pevent.Graphics, this.Text, this.Font, rect, Color.Gray, flags);
}
} }
} }

View File

@@ -58,20 +58,23 @@ public static class HardwareMonitor
} }
public static void RecreateGpuTemperatureProvider() { public static void RecreateGpuTemperatureProvider() {
try { try
{
GpuTemperatureProvider?.Dispose(); GpuTemperatureProvider?.Dispose();
// Detect valid GPU temperature provider. // Detect valid GPU temperature provider.
// We start with NVIDIA because there's always at least an integrated AMD GPU // We start with NVIDIA because there's always at least an integrated AMD GPU
IGpuTemperatureProvider gpuTemperatureProvider = new NvidiaGpuTemperatureProvider(); IGpuTemperatureProvider gpuTemperatureProvider = new NvidiaGpuTemperatureProvider();
if (gpuTemperatureProvider.IsValid) { if (gpuTemperatureProvider.IsValid)
{
GpuTemperatureProvider = gpuTemperatureProvider; GpuTemperatureProvider = gpuTemperatureProvider;
return; return;
} }
gpuTemperatureProvider.Dispose(); gpuTemperatureProvider.Dispose();
gpuTemperatureProvider = new AmdGpuTemperatureProvider(); gpuTemperatureProvider = new AmdGpuTemperatureProvider();
if (gpuTemperatureProvider.IsValid) { if (gpuTemperatureProvider.IsValid)
{
GpuTemperatureProvider = gpuTemperatureProvider; GpuTemperatureProvider = gpuTemperatureProvider;
return; return;
} }
@@ -79,7 +82,12 @@ public static class HardwareMonitor
gpuTemperatureProvider.Dispose(); gpuTemperatureProvider.Dispose();
GpuTemperatureProvider = null; GpuTemperatureProvider = null;
} finally { }
catch (Exception ex)
{
}
finally
{
Logger.WriteLine($"GpuTemperatureProvider: {GpuTemperatureProvider?.GetType().Name}"); Logger.WriteLine($"GpuTemperatureProvider: {GpuTemperatureProvider?.GetType().Name}");
} }
} }

View File

@@ -1205,10 +1205,10 @@ namespace GHelper
} }
public void ButtonEnabled(Button but, bool enabled) public void ButtonEnabled(RButton but, bool enabled)
{ {
but.Enabled = enabled; but.Enabled = enabled;
but.BackColor = enabled ? Color.FromArgb(255, but.BackColor) : Color.FromArgb(100, but.BackColor); but.BackColor = but.Enabled ? Color.FromArgb(255, but.BackColor) : Color.FromArgb(100, but.BackColor);
} }
public void SetStartupCheck(bool status) public void SetStartupCheck(bool status)