Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Прочие - Время работы компьютера

Ответить
Настройки темы
Прочие - Время работы компьютера

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Изменения
Автор: Delirium
Дата: 26-05-2011
Описание: Добавлена обновленная версия Win приложения
Вложения
Тип файла: zip uptime.zip
(42.4 Kb, 84 просмотров)
Тип файла: zip uptime_win 1.1.zip
(41.1 Kb, 122 просмотров)
Сегодня решил отдохнуть и узнать,сколько времени моя машина включена. Различные методы типа systeminfo и прочее - это скучно
Через 15 минут родилось 2 программки -консольная и оконная, единственное из назначение - вывод времени работы компьютера Берем из архива файл (1.exe - консольное, 2.exe - оконное), кидаем их в папку \Windows и затем достаточно будет нажать Ctrl+R (Пуск-выполнить) - и вбить туда 1 или 2 Файлы можно переименовать, как душе угодно, тогда надо будет вводить созданное вами имя в окне выполнения.
В Windows 7 достаточно просто нажать клавишу Пуск или Win(на клавиатуре) и ввести имя программы.

P.S. Для работы нужен Framework 2.0, т.к. студия не дает компилировать под Net 1.0, а файла csc.exe framework 1.0 у меня в семерке нет.
Если кто захочет, могу дать исходники, перекомпилим и выложим, тогда будет работать у всех без установки фреймворка
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:39, 01-03-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Чтобы не было криков, что я отсчитываю время от единожды полученного, вот вам весь исходник DOS приложения. WIN приложение делает тоже самое, только выводит данные на форму:

читать дальше »
Код: Выделить весь код
namespace uptime
{
    class Program
    {
        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
        static void Main(string[] args)
        {
            string s1, s2;
            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
            
            s1 = Convert.ToString(systemUptime / 1000) + " секунд";
            s2 = Convert.ToString(IdleTicks / 1000) + " seconds";

            TimeSpan t = TimeSpan.FromSeconds(systemUptime / 1000);
            t = TimeSpan.FromSeconds(systemUptime / 1000);


            string itog = t.Days.ToString() + "дн:" + t.Hours.ToString() + "ч:" + t.Minutes.ToString() + "м:" + t.Seconds.ToString() + "с.";
            Console.Write("\n\nВремя работы системы: " + s1 + "\n\nили " + itog);


            Console.Write("\n\nFreeware special for OsZone.Net :)\nby Delirium\n\n");
            var name = Console.ReadKey(true);
            
        }
        internal struct LASTINPUTINFO
        {
            public uint cbSize;
            public uint dwTime;
        }
    }
}

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:15, 01-06-2011 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Delirium, а где обработка отрицательных значений?

Отправлено: 09:23, 01-06-2011 | #22


Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


Почему у меня в обратную сторону время идет с момента первого запуска вашего приложения? Повторюсь что systeminfo и NHC показывают норм.

Отправлено: 13:29, 01-06-2011 | #23


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


хм. Вы меня прямо в тупик поставили. Сколько не проверял на кучке машин, не выловил отрицательных значений....
nixuz, а какой аптайм у твоей машины? Более 49 дней?

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:03, 02-06-2011 | #24


Новый участник


Сообщения: 47
Благодарности: 1

Профиль | Отправить PM | Цитировать


нет, месяц
но у меня не отрицательные пока значения просто если на текущий момент реальный аптайм 32 дня, то в этих програмках - 17 дней и уменьшается

Отправлено: 04:03, 02-06-2011 | #25


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Delirium, ты меня иногда искренне поражаешь
MSDN по русски пишет:
Цитата:
Значение этого свойства извлекается из таймера системы и хранится как целое 32-разрядное число со знаком. Следовательно, если система работает непрерывно, значение свойства TickCount на протяжении приблизительно 24,9 дней будет возрастать, начиная с нуля и заканчивая значением Int32.MaxValue, после чего оно будет сброшено до значения Int32.MinValue, являющегося отрицательным числом, и снова начнет расти до нуля в течение следующих 24,9 дней.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:03, 02-06-2011 | #26


Аватара для Grabber2006

Ветеран


Сообщения: 5064
Благодарности: 1154

Профиль | Отправить PM | Цитировать


В Delphi оно интерпретируется как Integer (целое, без знака), поэтому и не врёт (знак в старшем разряде записывается).

Отправлено: 13:02, 02-06-2011 | #27


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Busla, честно? Код был частично содран с англоязычного сайта какого то, и я не читал описания TickCount, потому и не встретил этого бага. Переделаю на днях как положено.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 13:13, 02-06-2011 | #28


Аватара для Grabber2006

Ветеран


Сообщения: 5064
Благодарности: 1154

Профиль | Отправить PM | Цитировать


Попробуйте заменить Int32 на UInt32

прога на Delphi

Отправлено: 20:51, 02-06-2011 | #29


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо за программу!

Отправлено: 23:07, 26-01-2012 | #30



Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Прочие - Время работы компьютера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Время работы компьютера! SERViNT Microsoft Windows 2000/XP 6 01-03-2011 13:34
Router - умер во время работы forgtik Сетевое оборудование 24 21-12-2010 19:21
Ошибка - [решено] во время работы компьютера проскальзывает сообщение об ошибке. One THE darK Microsoft Windows 2000/XP 2 25-07-2010 18:46
Разное - Виснет во время работы PLATON Microsoft Windows 7 28 18-12-2009 11:44
Разное - [решено] Программа ограничивающая время работы компьютера Naiad Программное обеспечение Windows 5 11-12-2008 20:26




 
Переход