Files
ReLibreHardwareMonitor/Software/OperatingSystem.cs
T
Phyxion 66e69c4c25 Pr/30 (#32)
* Unified operating system type detection

* Revert "Unified operating system type detection"

This reverts commit 3edf0edfceaca259e041e23b9930d78531366fd5.

* Introduced OperatingSystem.IsLinux instead of constant check on Os version.

* Misc
2018-02-10 14:01:52 +01:00

39 lines
1.1 KiB
C#

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace OpenHardwareMonitor.Software
{
public static class OperatingSystem
{
static OperatingSystem()
{
// The operating system doesn't change during execution so let's query it just one time.
var platform = Environment.OSVersion.Platform;
IsLinux = platform == PlatformID.Unix || platform == PlatformID.MacOSX;
if (IntPtr.Size == 8)
Is64Bit = true;
try
{
var result = IsWow64Process(Process.GetCurrentProcess().Handle, out bool wow64Process);
Is64Bit = result && wow64Process;
}
catch (EntryPointNotFoundException)
{
Is64Bit = false;
}
}
public static bool Is64Bit { get; }
public static bool IsLinux { get; }
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool IsWow64Process(IntPtr hProcess, out bool wow64Process);
}
}