140 lines
4.6 KiB
C#
140 lines
4.6 KiB
C#
using System.Diagnostics;
|
|
using System.Text;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
using DerpingDrivers.Util;
|
|
using MahApps.Metro.Controls;
|
|
using Markdig;
|
|
using Markdig.Wpf;
|
|
|
|
namespace DerpingDrivers
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MainWindow.xaml
|
|
/// </summary>
|
|
public partial class MainWindow : MetroWindow
|
|
{
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
|
|
Loaded += OnLoaded;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets Operating System Architecture display name.
|
|
/// </summary>
|
|
public string OsArchitecture =>
|
|
OsVersionInfo.OsBits == OsVersionInfo.SoftwareArchitecture.Bit64 ? "64-bit" : "32-bit";
|
|
|
|
/// <summary>
|
|
/// Gets Operating System display name.
|
|
/// </summary>
|
|
public string OsVersionName => OsVersionInfo.Name;
|
|
|
|
/// <summary>
|
|
/// Gets Operating System edition name.
|
|
/// </summary>
|
|
public string OsEditionName => string.IsNullOrEmpty(OsVersionInfo.Edition) ? "None" : OsVersionInfo.Edition;
|
|
|
|
/// <summary>
|
|
/// Gets Operating System build number.
|
|
/// </summary>
|
|
public string OsVersion => OsVersionInfo.VersionString;
|
|
|
|
/// <summary>
|
|
/// Gets Boot mode (Legacy BIOS, UEFI).
|
|
/// </summary>
|
|
public string BootMode => UEFIHelper.IsRunningInUEFIMode ? "UEFI" : "Legacy BIOS";
|
|
|
|
/// <summary>
|
|
/// Gets Secure Boot status.
|
|
/// </summary>
|
|
public string SecureBootEnabled => UEFIHelper.IsRunningInUEFIMode
|
|
? (UEFIHelper.IsSecureBootEnabled ? "Enabled" : "Disabled")
|
|
: "Not available";
|
|
|
|
/// <summary>
|
|
/// Gets OS upgrade status.
|
|
/// </summary>
|
|
public string OsUpgradeStatus =>
|
|
OsUpgradeDetection.IsGrandfathered ? "In-place upgraded" : "Clean installation";
|
|
|
|
/// <summary>
|
|
/// Gets test-mode status.
|
|
/// </summary>
|
|
public string TestSigningStatus => CodeIntegrityHelper.IsTestSignEnabled ? "Enabled" : "Disabled";
|
|
|
|
private string MatchingSummaryContent
|
|
{
|
|
get
|
|
{
|
|
var t = BcdHelper.IsTestSignEnabled;
|
|
|
|
#region TESTSIGNING mode
|
|
|
|
if (CodeIntegrityHelper.IsTestSignEnabled)
|
|
return Encoding.UTF8.GetString(Properties.Resources.testsigning);
|
|
|
|
#endregion
|
|
|
|
#region Windows 10, x64
|
|
|
|
if (OsVersionInfo.IsWindows10
|
|
&& OsVersionInfo.OsBits == OsVersionInfo.SoftwareArchitecture.Bit64)
|
|
{
|
|
if (UEFIHelper.IsRunningInUEFIMode
|
|
&& !UEFIHelper.IsSecureBootEnabled
|
|
&& !OsUpgradeDetection.IsGrandfathered)
|
|
return Encoding.UTF8.GetString(Properties.Resources.win10_x64_uefi_clean);
|
|
|
|
if (UEFIHelper.IsRunningInUEFIMode
|
|
&& UEFIHelper.IsSecureBootEnabled
|
|
&& !OsUpgradeDetection.IsGrandfathered)
|
|
return Encoding.UTF8.GetString(Properties.Resources.win10_x64_uefi_secure_clean);
|
|
|
|
if (UEFIHelper.IsRunningInUEFIMode
|
|
&& UEFIHelper.IsSecureBootEnabled
|
|
&& OsUpgradeDetection.IsGrandfathered)
|
|
return Encoding.UTF8.GetString(Properties.Resources.win10_x64_uefi_secure_upgraded);
|
|
|
|
if (UEFIHelper.IsRunningInUEFIMode
|
|
&& !UEFIHelper.IsSecureBootEnabled
|
|
&& OsUpgradeDetection.IsGrandfathered)
|
|
return Encoding.UTF8.GetString(Properties.Resources.win10_x64_uefi_upgraded);
|
|
}
|
|
|
|
#endregion
|
|
|
|
return "*None available*";
|
|
}
|
|
}
|
|
|
|
private void OnLoaded(object sender, RoutedEventArgs e)
|
|
{
|
|
SummaryViewer.Pipeline = new MarkdownPipelineBuilder().UseSupportedExtensions().Build();
|
|
|
|
SummaryViewer.Markdown = MatchingSummaryContent;
|
|
}
|
|
|
|
private void Web_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
Process.Start("https://vigem.org");
|
|
}
|
|
|
|
private void Discord_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
Process.Start("https://discord.vigem.org");
|
|
}
|
|
|
|
private void Forums_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
Process.Start("https://forums.vigem.org");
|
|
}
|
|
|
|
private void OpenHyperlink(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
Process.Start(e.Parameter.ToString());
|
|
}
|
|
}
|
|
} |