1
0
DerpingDrivers/DerpingDrivers/MainWindow.xaml.cs
2018-11-04 00:53:47 +01:00

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());
}
}
}