HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Processzor, alaplap hőmérsékletét jelző web kontrol


Példaprogram letöltése

15637 bájt

Készítsünk most egy olyan kontrolt, mely képes arra, hogy szerverünk processzorának hőmérsékletét, illetve az alaplap hőmérsékletét jelzi. A kontrolt csak el kell helyeznünk a web lap azon részén, ahol szeretnénk megjeleníteni a hőmérsékletet, majd ki kell választanunk egy property-n keresztül, hogy az alaplap, vagy a processzor hőfokát lássuk-e.

Mellékelt példa megnyitása előtt szükséges egy ProcessorTemperature nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
Asus alaplapok esetén igen könnyen meghatározhatjuk e két hőmérséklet értéket. Ehhez csak egy-egy paraméter nélküli függvényt kell meghívunk az Asus.dll-ből:
  public class Asus
  {
    [DllImport("asus.dll")]
    public static extern Int32 GetCPUTemperature();
    [DllImport("asus.dll")]
    public static extern Int32 GetMBTemperature();
  }
E DLL üzembeállításának részletes leírása megtalálható a leírás végén hivatkozott cikkben.
A ProcessorTemperature kontrol létrehozása
Szükségünk lesz még egy Image nevű property-re is, ahol egy tetszőleges kis képet is megadhatunk, melyet a kontrol megjelenít.
    [Editor(typeof(ImageUrlEditor),typeof(UITypeEditor))]
    public string Image
    {
      get 
      { 
        return image; 
      }
      set 
      { 
        image = value; 
      }
    }
A kijelzendő érték kiválasztásához létrehozunk egy felsorolt típust.
  public enum TemperatureEnum
  {
    CPU,
    Motherboard
  }
Majd e típushoz egy property-t is.
    private TemperatureEnum temperature;
    public TemperatureEnum Temperature
    {
      get
      {
        return temperature;
      }
Amikor változik e property értéke, akkor a ChildControlsCreated property-t hamisra állítjuk. Ennek eredményeképpen újra fut a CreateChildControls függvény, mely az új feltételek figyelembevételével ismételten létrehozza a kontrol tartalmát.
      set 
      {
        temperature = value;
        this.ChildControlsCreated = false;
      }
    }
A kontrol tartalmának létrehozásakor első lépésként lekérdezzük a megfelelő hardver eszköz hőmérsékletét.
    protected override void CreateChildControls() 
    { 
      try
      {
        int c;
        if (temperature == TemperatureEnum.CPU)
        {
          c = Asus.GetCPUTemperature();
        }
        else
        {
          c = Asus.GetMBTemperature();
        }
Az aktuális értékét egy Label segítségével jelenítjük meg a kontrolon belül.
        Label l = new Label();
        l.Text = c.ToString() + "°C";
        l.Style.Add("left", "20");
        l.Style.Add("top", "20");
        l.Style.Add("position", "absolute");
        Controls.Add(l);
        ...
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 630. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |