Utilities/EmbeddedResources.cs
author moel.mich
Sun, 23 Sep 2012 18:37:43 +0000
changeset 380 573f1fff48b2
parent 127 76aaf45a01c7
permissions -rw-r--r--
Fixed Issue 387. The new implementation does not try to start a ring 0 driver that already exists, but could not be opened. It tries to delete the driver and install it new. The driver is now stored temporarily in the application folder. The driver is not correctly removed on system shutdown.
moel@1
     1
/*
moel@1
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@1
     6
 
moel@344
     7
  Copyright (C) 2009-2010 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	
moel@1
     9
*/
moel@1
    10
moel@1
    11
using System;
moel@1
    12
using System.Collections.Generic;
moel@1
    13
using System.Drawing;
moel@127
    14
using System.IO;
moel@1
    15
using System.Reflection;
moel@1
    16
moel@1
    17
namespace OpenHardwareMonitor.Utilities {
moel@1
    18
  public class EmbeddedResources {
moel@1
    19
moel@1
    20
    public static Image GetImage(string name) {
moel@1
    21
      name = "OpenHardwareMonitor.Resources." + name;
moel@1
    22
moel@1
    23
      string[] names = 
moel@1
    24
        Assembly.GetExecutingAssembly().GetManifestResourceNames();
moel@1
    25
      for (int i = 0; i < names.Length; i++) {
moel@127
    26
        if (names[i].Replace('\\', '.') == name) {
moel@127
    27
          using (Stream stream = Assembly.GetExecutingAssembly().
moel@127
    28
            GetManifestResourceStream(names[i])) {
moel@127
    29
moel@127
    30
            // "You must keep the stream open for the lifetime of the Image."
moel@127
    31
            Image image = Image.FromStream(stream);
moel@127
    32
moel@127
    33
            // so we just create a copy of the image 
moel@127
    34
            Bitmap bitmap = new Bitmap(image);
moel@127
    35
moel@127
    36
            // and dispose it right here
moel@127
    37
            image.Dispose();
moel@127
    38
moel@127
    39
            return bitmap;
moel@127
    40
          }
moel@127
    41
        }
moel@127
    42
      } 
moel@1
    43
moel@1
    44
      return new Bitmap(1, 1);    
moel@1
    45
    }
moel@28
    46
moel@28
    47
    public static Icon GetIcon(string name) {
moel@28
    48
      name = "OpenHardwareMonitor.Resources." + name;
moel@28
    49
moel@28
    50
      string[] names =
moel@28
    51
        Assembly.GetExecutingAssembly().GetManifestResourceNames();
moel@28
    52
      for (int i = 0; i < names.Length; i++) {
moel@127
    53
        if (names[i].Replace('\\', '.') == name) {
moel@127
    54
          using (Stream stream = Assembly.GetExecutingAssembly().
moel@127
    55
            GetManifestResourceStream(names[i])) {
moel@127
    56
            return new Icon(stream);
moel@127
    57
          }
moel@127
    58
        }          
moel@127
    59
      } 
moel@28
    60
moel@28
    61
      return null;
moel@28
    62
    }
moel@1
    63
         
moel@1
    64
  }
moel@1
    65
}