Toon posts:

Uptime opvragen in C#

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een kleine progje gemaakt die de uptime opvraagt en die omzet naar uren/minuten/seconden , ik denk alleen niet dat ik dat efficient genoeg heb gedaan, iemand wat slimme suggesties.

Hij doet het voor de rest perfect alleen vreet die 8mb recources :9
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void GetRunTime()
        {
            int runTime = Environment.TickCount;
            
            int getTotalHours    = ((runTime /1000)/3600);
            double getDTotalMinutes = (((runTime / 1000d)/3600)%((runTime /1000)/3600))*60;
        int getTotalMinutes     = (int) getDTotalMinutes;
            double getDTotalSeconds = (runTime /1000d)-((getTotalHours * 3600)+(getTotalMinutes * 60));
            int getTotalSeconds     = (int) getDTotalSeconds;
            int getDays      = getTotalHours / 24;
            if(getTotalHours > 24)
                this.lblGetRunTime.Text = "UPTIME :  "+Convert.ToString(getDays)+" D  " +Convert.ToString(getTotalHours)+" H  " + Convert.ToString(getTotalMinutes)+ " M  "+Convert.ToString(getTotalSeconds)+ " S";
        else
                this.lblGetRunTime.Text = "UPTIME :  "+Convert.ToString(getTotalHours)+" H  " + Convert.ToString(getTotalMinutes)+ " M  "+Convert.ToString(getTotalSeconds)+ " S";      
        }

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 19-08 14:53
Op maandag 22 juli 2002 03:06 schreef cONEction het volgende:
Hij doet het voor de rest perfect alleen vreet die 8mb recources :9
Ik denk dat dat eerder aan de .NET-runtime ligt dan aan jouw programma. Jouw programma is zo klein dat dat niet de oorzaak van die 8 mb resources zal zijn.

Verwijderd

Verder heeft dit programma na 49.71 dagen een probleem, want dan is de uptime weer 0 :)

Kijk eens naar de WMI interface, die geeft als het goed is wel een goede uptime af. (wel even de juiste query opstellen)

Verwijderd

Topicstarter
Op maandag 22 juli 2002 09:46 schreef Otis het volgende:
Verder heeft dit programma na 49.71 dagen een probleem, want dan is de uptime weer 0 :)

Kijk eens naar de WMI interface, die geeft als het goed is wel een goede uptime af. (wel even de juiste query opstellen)
kun je misschien iets meer vertellen over die WMI en waar ik meer info kan vinden, nog bedankt

Verwijderd

Op maandag 22 juli 2002 11:22 schreef cONEction het volgende:
[..]
kun je misschien iets meer vertellen over die WMI en waar ik meer info kan vinden, nog bedankt
Dit stukje code leest alle devices in een systeem uit WMI en zet ze in een treeview control:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/// <summary>
/// Purpose: Initializes the tree and fill the root node with the initial nodes.
/// </summary>
private void InitTreeAndFillRoot()
{
    // Add all devices in this machine. Get them from WMI. See for
    // detailed WMI information the WMI Platform SDK Documentation.
    SelectQuery sqLogicalDrives = new SelectQuery ("SELECT * FROM Win32_LogicalDisk");
    ManagementObjectSearcher mosSearcher = new ManagementObjectSearcher(sqLogicalDrives);
    ManagementObjectCollection mocLogicalDrives = mosSearcher.Get();

    tvMain.BeginUpdate();
    foreach (ManagementObject moDrive in mocLogicalDrives)
    {
        // add a node. Select an image for the drive type.
        TreeNode tnNode = tvMain.Nodes.Add(moDrive.Properties["DeviceID"].Value.ToString());
        int iDriveType = int.Parse(moDrive.Properties["DriveType"].Value.ToString());
        if(iDriveType < 2 || iDriveType > 5)
        {
            tnNode.ImageIndex = 0;
            tnNode.SelectedImageIndex = 0;
        }
        else
        {
            tnNode.ImageIndex = iDriveType;
            tnNode.SelectedImageIndex = iDriveType;
        }
        // add dummy node so the user can browse fast through the directories.
        // add an empty string, a directory can't be an empty string.
        TreeNode tnDummy = tnNode.Nodes.Add("");
    }
    tvMain.EndUpdate();
}

De namespace System.Management referencen.

Kijk in de MSDN library (platform SDK) voor informatie over WMI en de beschikbare classes (dat zijn er nogal wat). Punt is wel dat in Windows er _GEEN_ counter wordt bijgehouden voor het 'up' zijn van het complete systeem (dit omdat het up zijn van services belangrijk wordt geacht, niet het complete systeem, want daar is geen eenduidige definitie voor te geven). Je kunt dmv het uitlezen van verschillende performance counters wel achterhalen hoeveel tijd er ong is verstreken sinds de laatste reboot. (o.a. de hoeveelheid 'kerneltime en usertime' een process heeft gekregen).

Onder de nieuwe MSDN (januari en later) structuur is de WMI te vinden onder:
Setup And System Administration / Windows Management Instrumentation (WMI) / SDK Documentation / Widnwos Management Instrumentation / WMI Reference

Verwijderd

Topicstarter
bedankt, zal eens kijken! :Y)

Verwijderd

Topicstarter
Hij doet het nu best aardig en die 8mb ligt idd aan de runtime van C# , Als je progje opstart verschijnt ie nu in traybar en als je met de muis overheen gaat zie je de uptime :9 , stelt weinig voor , voor de rest, mijn eerste poging om iets te maken met C#,

voor mensen die belangstelling hebben (alles inc source) :

[url="http://www23.brinkster.com/i4a2/SimpleWindowsApplication.zip"]http://www23.brinkster.com/i4a2/SimpleWindowsApplication.zip[/url]

8-)

  • vassago
  • Registratie: Januari 2000
  • Nu online
Ff offtopic, is dit (C#) makkelijker te leren dan C++?

  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
Op maandag 22 juli 2002 12:47 schreef vassago het volgende:
Ff offtopic, is dit (C#) makkelijker te leren dan C++?
JA! en niet alleen te leren, proggen in C/C++ is ook iets lastiger... je hebt meer met systeem te maken. C# doet een groot deel voor je, zoals buffer underruns checken enzo... geheugen vrijmaken...

  • vassago
  • Registratie: Januari 2000
  • Nu online
Nog tips voor goede boeken?

Verwijderd

Op maandag 22 juli 2002 14:09 schreef vassago het volgende:
Nog tips voor goede boeken?
Programming C#, by Jesse Liberty (second edition is uit).

uitstekend boek om puur de taal C# te leren en niet te worden geconfronteerd met al te veel .NET api geneuzel. Het 2e gedeelte van het boek gaat over het toepassen van C# mbv .NET, dus ook daar voorziet het in, maar voornl. voor het leren van de taal erg goed.

  • risr
  • Registratie: Juli 2002
  • Laatst online: 14-07 10:19
Op maandag 22 juli 2002 14:09 schreef vassago het volgende:
Nog tips voor goede boeken?
Zie "Presenting C# door Christoph Wille" (nummer drie) op:
[url="http://www.informit.com/free_library/"]http://www.informit.com/free_library/[/url]

Of het een goed boek is laat ik aan jou over :P
(het boek is intussen wel out-dated)

iig gratis en online.

---
Ramses
[url="http://ramses.opweb.nl/"]http://ramses.opweb.nl/[/url]

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op maandag 22 juli 2002 14:09 schreef vassago het volgende:
Nog tips voor goede boeken?
Ook voor C# heeft Bruce Eckel een "Thinking in .." E-Book gemaakt. Deze is hier te vinden/downloaden: [url="http://www.mindview.net/Books/TICSharp"]http://www.mindview.net/Books/TICSharp[/url]

Toch is een legacy boek nog steeds erg prettig :)
Ik heb zelf "Professional C# 2nd Edition" (engels) en dit boek legt zowel de taal C# als het programmeren in .NET uitgebreid uit. Ik vind het een aanrader. De nederlandse vertaling schijnt niet zo goed te zijn.
Pagina: 1