![]() |
Время работы компьютера
Вложений: 2
Сегодня решил отдохнуть и узнать,сколько времени моя машина включена. Различные методы типа 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 у меня в семерке нет. Если кто захочет, могу дать исходники, перекомпилим и выложим, тогда будет работать у всех без установки фреймворка :) |
А реально сделать в реальном времени отсчет?
|
Сделать то все реально :) А цель какова? Можно сделать чтобы в трее висело приложение и при наведении показывало время работы.
|
Маленько обновил программку Win-версии. Теперь ее можно свернуть в трей и при наведении мыши будет показывать время работы. В шапке лежит обновленная версия(uptime_win 1.1.zip)
|
в версии 1.1 у меня время аптайма определилось, а потом начинает уменьшаться))
|
а можно сделать, так чтобы отсчет шел постоянно
|
баг версии 1.1 с уменьшением времени означает, что впрога один раз получила данные о системном аптайме, а далее сама прибавляет (пока, правда, отнимает) единицу каждую секунду.
мне кажется, было бы правильнее, что бы программа просто раз в секунду получала данные о времени аптайма из системы |
Цитата:
Цитата:
|
есть же KB232243
|
KB232243 так может?
свернуть в трей и при наведении мыши будет показывать время работы |
ferget, не может, но на мой взгляд, это довольно экзотичная функция:
если требуется реально контролировать uptime - виджет на экран или на рабочий стол обоями выкладывать (BGinfo) |
Вложений: 1
Цитата:
Не важно, наводишь мышкой или переоткрываешь окно - время уменьшается. |
Вложений: 1
Выявилась еще одна проблема. Сегодня я заметил, чир во всех версиях вашей программы время оказалось на много меньше, а сначала совпадало с системным аптаймом. При этом systeminfo и NHC - показывают корректно. Первый раз я скачал архив с программой 25 мая в 19:50 и запустил программу, соответственно, позже, и хотя на текущий момент прошло менее 3х суток, разница в показаниях составляет 5 дней, т.е. время уменьшается где-то в два раза быстрее, а значит есть какой-то отдельный счетчик у вашей программы, а не опрос системного времени.
|
повтор
а можно сделать, так чтобы отсчет шел постоянно |
Какой-то велосипед изобретаете:
1. Ctrl + Alt + Del -> Диспетчер задач -> Быстродействие -> Время работы 2. Утилита от MS uptime.exe 3. В командной строке "net statistics server" (в первой строчке - время включения) 4. В командной строке "systeminfo" 5. На Delphi: Код:
function UpTime: string; Чтобы избежать лимита юзайте GetTickCount64 (соответственно ULONGLONG, а не LongWord). |
Цитата:
|
Цитата:
|
|
ferget, ресурс диспетчера по видимому патченый, по умолчанию в ХР такого нет. Признавайтесь какой украшалкой пользуетесь? :)
|
Без украшалок в Win7 так.
Кстати, GetTickCount64 только под Vista, 7, 2008 есть. В XP чтобы нормальное время узнать (если больше 49 дней), то надо через HKEY_PERFORMANCE_DATA\System\System Up Time или NtQuerySystemInformation Интересно: NtQuerySystemInformation заполняет такую структуру: SYSTEM_TIME_OF_DAY_INFORMATION = packed record BootTime: LARGE_INTEGER; CurrentTime: LARGE_INTEGER; TimeZoneBias: LARGE_INTEGER; CurrentTimeZoneId: ULONG; Reserved: ULONG; end; которое BootTime - это время загрузки в 100-нс начиная с 1601 года. SystemTimeOfDayInformation = 3 Delphi: Код:
NtQuerySystemInformation(3, @s,sizeof(SYSTEM_TIME_OF_DAY_INFORMATION),nil); |
Чтобы не было криков, что я отсчитываю время от единожды полученного, вот вам весь исходник DOS приложения. WIN приложение делает тоже самое, только выводит данные на форму:
|
Delirium, а где обработка отрицательных значений?
|
Почему у меня в обратную сторону время идет с момента первого запуска вашего приложения? Повторюсь что systeminfo и NHC показывают норм.
|
хм. Вы меня прямо в тупик поставили. Сколько не проверял на кучке машин, не выловил отрицательных значений....
nixuz, а какой аптайм у твоей машины? Более 49 дней? |
нет, месяц
но у меня не отрицательные пока значения просто если на текущий момент реальный аптайм 32 дня, то в этих програмках - 17 дней и уменьшается |
Delirium, ты меня иногда искренне поражаешь
MSDN по русски пишет: Цитата:
|
В Delphi оно интерпретируется как Integer (целое, без знака), поэтому и не врёт (знак в старшем разряде записывается).
|
Busla, честно? Код был частично содран с англоязычного сайта какого то, и я не читал описания TickCount, потому и не встретил этого бага. Переделаю на днях как положено.
|
|
Большое спасибо за программу!
|
У меня на Windows x64bit работает нормально, запускается с рабочего стола, У меня на Windows x64bit работает нормально, запускается с рабочего стола.
Кстати начал искать способ узнать время работы после того как штатная команда cmd/systeminfo перестала отображать именно "время работы" все остальное отображает. Спасибо автору программки - выручил сильно |
Время: 06:28. |
Время: 06:28.
© OSzone.net 2001-