HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A számítógép elindulása óta eltelt idő folyamatos kijelzése


Példaprogram letöltése

8067 bájt

E példában egy olyan kis alkalmazást készítünk, mely folyamatosan tájékoztat arról, hogy mióta indult el a számítógép. A megjelenő ablak állandóan látható lesz (TopMost), de mivel kis méretű, így könnyen elfér a képernyő tetején, ahol más alkalmazásoknak a fejléce található csak, így nem zavaró az állandó jelenléte. A kis méret miatt a Form-nak nem lehet fejléce, ezért meg kell oldanunk az ablak mozgatását fejléc hiányában is.

A fejléc eltüntetéséhez a Form Text property-jének tartalmát töröljük, majd a ControlBox property-jét is állítsuk hamisra. Hogy állandóan, minden más alkalmazás felett látható legyen a Form-unk, állítsuk be a TopMost property-t igaz értékre. Az viszont zavaró lenne, ha a tálcán is állandóan jelen lenne a program ikonja ezért a ShowInTaskbar property-t hamisra állítjuk. Az Opacity property-t 60%-ra változtatjuk meg, ezért a teljes Form-unk áttetsző lesz a megadott mértékig, így jobban belesimul majd a környezetébe, de a kijelzett időpont még olvasható marad. A StartPosition property legyen Manual, hogy a Form helyzetét programból állíthassuk be.
      Left = Screen.PrimaryScreen.Bounds.Width-250;
      Top = 4;
A Form kis méretének eléréséhez egy új régiót hozunk létre, mivel a Form mérete egy adott érték alá nem csökkenthető a Width és Height property-ken keresztül.
      this.Region = new Region(new Rectangle(0, 0, 120, 16));
Mivel nincs fejléc, ezért a Form-ot annak kliensterületénél fogva tudjuk majd mozgatni, csak előbb erre rá kell venni a Form-ot, hogy így működjön. A WM_NCHITTEST üzenetnél lehetőségünk nyílik erre is. Ha itt azt „hazudjuk” a Windows-nak, hogy a Form-unknak az egér alatti területe a Form fejléce (HTCAPTION), akkor ez úgy is fog viselkedni, vagyis a Form-ot bárhol megfoghatjuk, mint a fejlécénél és mozgathatjuk.
    protected override void WndProc(ref Message m) 
    {
      if (m.Msg == WM_NCHITTEST) 
      {
        m.Result = HTCAPTION;
      }
      else
      {
        base.WndProc(ref m);
      }
    }
Végül már csak annyi a dolgunk, hogy kiírjuk, hogy mennyi idő telt el a számítógép indulása óta. Ehhez az Environment osztály TickCount property-je adja meg a választ. Ebben a property-ben megkapjuk a gép elindulása óta eltelt időt, csakhogy ezredmásodpercben. Így némi átalakításra van szükség ahhoz, hogy nap, óra, perc, másodperc formában képesek legyünk ezt megjeleníteni.
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      int i = System.Environment.TickCount;
      int s = i / 1000;
      int m = s / 60;
      int h = m / 60;
      int d = h / 24;
      s = s % 60;
      m = m % 60;
      h = h % 24;
      string tmp=d.ToString() + " nap " + h.ToString("00") + ":" +  m.ToString("00") + ":" +  s.ToString("00");
      e.Graphics.DrawString(tmp, this.Font, new SolidBrush(Color.Black), 20, 2, StringFormat.GenericDefault);
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 345. 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 |