Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Andrew Pociu -

C# - Система

Все примеры / Система

Как получить время работы/простоя Windows?

Автор: Andrew Pociu | добавлено: 14.01.2011, 16:52 | просмотров: 4891 (1+) | комментариев: 0 | рейтинг: *x10
Пример показывает, как в C# при помощи API получить время работы и простоя Windows.

Код

// Copyright (C) Geekpedia.com 2007. All rights reserved.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace IdleTimer
{
    public partial class Form1 : Form
    {
        // Unmanaged function from user32.dll
        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

        // Struct we'll need to pass to the function
        internal struct LASTINPUTINFO
        {
            public uint cbSize;
            public uint dwTime;
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void tmrIdle_Tick(object sender, EventArgs e)
        {
            // Get the system uptime
            int systemUptime = Environment.TickCount;
            // The tick at which the last input was recorded
            int LastInputTicks = 0;
            // The number of ticks that passed since last input
            int IdleTicks = 0;

            // Set the struct
            LASTINPUTINFO LastInputInfo = new LASTINPUTINFO();
            LastInputInfo.cbSize = (uint)Marshal.SizeOf(LastInputInfo);
            LastInputInfo.dwTime = 0;

            // If we have a value from the function
            if (GetLastInputInfo(ref LastInputInfo))
            {
                // Get the number of ticks at the point when the last activity was seen
                LastInputTicks = (int)LastInputInfo.dwTime;
                // Number of idle ticks = system uptime ticks - number of ticks at last input
                IdleTicks = systemUptime - LastInputTicks;
            }

            // Set the labels; divide by 1000 to transform the milliseconds to seconds
            lblSystemUptime.Text = Convert.ToString(systemUptime / 1000) + " seconds";
            lblIdleTime.Text = Convert.ToString(IdleTicks / 1000) + " seconds";
            lblLastInput.Text = "At second " + Convert.ToString(LastInputTicks / 1000);
        }

    }
}
Файлы IdleTimer.zip (30,7 Кб)
Об авторе

Andrew Pociu

Веб-разработчик. Проживает в США. Автор проекта www.geekpedia.com.
Andrew Pociu
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики