Hardware/OperatingSystem.cs
author sl
Sun, 03 Feb 2013 18:01:50 +0100
changeset 391 ca4c0e7ae75d
permissions -rw-r--r--
Converted project to VisualStudio 2012.
Adding SoundGraphDisplay and SensorFrontView classes.
They were respectively based on SystemTray and SensorNotifyIcon.
SoundGraphDisplay is now able to load iMONDisplay.dll providing it lives on your PATH.
Adding option to sensor context menu for adding it into FrontView.
moel@361
     1
/*
moel@361
     2
 
moel@361
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@361
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@361
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@361
     6
 
moel@361
     7
  Copyright (C) 2012 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@361
     8
	
moel@361
     9
*/
moel@361
    10
moel@361
    11
using System;
moel@361
    12
using System.Diagnostics;
moel@361
    13
using System.Runtime.InteropServices;
moel@361
    14
moel@361
    15
namespace OpenHardwareMonitor.Hardware {
moel@361
    16
  internal static class OperatingSystem {
moel@361
    17
moel@361
    18
    public static bool Is64BitOperatingSystem() {
moel@361
    19
      if (IntPtr.Size == 8)
moel@361
    20
        return true;
moel@361
    21
moel@361
    22
      try {
moel@361
    23
        bool wow64Process;
moel@361
    24
        bool result = IsWow64Process(
moel@361
    25
          Process.GetCurrentProcess().Handle, out wow64Process);
moel@361
    26
moel@361
    27
        return result && wow64Process;
moel@361
    28
      } catch (EntryPointNotFoundException) {
moel@361
    29
        return false;
moel@361
    30
      }
moel@361
    31
    }
moel@361
    32
moel@361
    33
    [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
moel@361
    34
    [return: MarshalAs(UnmanagedType.Bool)]
moel@361
    35
    private static extern bool IsWow64Process(IntPtr hProcess,
moel@361
    36
      out bool wow64Process);
moel@361
    37
  }
moel@361
    38
}