![]() |
подсчёт времени запущенного процесса redebook.exe
Мне необходим bat чтобы он вел подсчёт времени запущенного процесса redebook.exe ток чтобы не сильно грузило комп .
Возможно что то в этом роде Код:
@Echo Off ================================== С:\WINDOWS\system32\cmd.exe ================================== Start : 13:45:12 Сompleted : 15:51:16 Worked : 02:06:04 Last session : 01:02:01 Total: 0 days 20:11:12 Press any key to exit ================================== Start : Время старта Сompleted : Время закрытия Worked : Время работы Last session : Последние время работы Total: 0 days Общие дни и время работы Общие время и последние время работы должно сохранятся в config.cfg Этот скрипт на подобии http://forum.oszone.net/thread-234460.html Вот этой темы . Помогите плиз ))) |
vlad_exe@vk, объясните, зачем сие вообще нужно, и что нужно будет в конечном итоге.
|
Вообще то применений много , но хотя бы для игры , ведь так быстро летит время именно в играх , тут ты выходишь с игры и видишь сколько ты потратил жизни на эту бесполезную вещь )))
|
Пакетный файл — не лучший выбор для этого, хотя и возможный; примеры работы с разницей двух значений даты/времени на форуме есть, хотя бы в той же самой теме. В чём проблема-то?!
Лично у меня заниматься подобным желания нет, а вот Вы сами можете и попробовать. |
Спасибо Кеп это моя тема .
|
Цитата:
|
vlad_exe@vk, но зачем периодически делать проверку наличия процесса с определённым интервалом, это в корне неверный подход. Записать время старта, вызвать нужный процесс через Call, и когда он завершен - еще раз замерить время и высчитать разницу. Не трудно, правда? Тем более, примеры сравнения двух timestamp-ов у вас есть.
|
Цитата:
|
Anonymоus Не знаю , просто хочется чтобы всё было на автомате .
Я только начинающий скриптер для меня это сложновато . Мне хотелось бы понять саму команд снятия показателей времени чтобы преобразовать его в %HH% %MM% %SS% чтобы его можно было видать командой echo. %HH%:%MM%:%SS% Пожалуйста можете мне написать её отдельно внизу ) |
vlad_exe@vk, то, что я предлагаю - и есть "на автомате". Только вместо кучи лишней работы вида
Цитата:
1) замерить время 2) запустить программу, дождавшись ее закрытия 3) когда батник продолжит работу после закрытия программы, еще раз замерить время и высчитать разницу. Время - %time% Время БЕЗ милисекунд - %time:~-0,8% Разбор времени в HH, MM и SS: Код:
For /F "tokens=1,2,3 delims=:" %%A In ("%time:~-0,8%") Do ( |
Хмм наверное я тупой :cry: )))я никак не пойму но мне надо проделать вот такое
Код:
For /F "tokens=1,2,3 delims=:" %%A In ("%time:~-0,8%") Do ( Anonymоus А можно спросит , какое у вас образование ? вы программист ? |
Цитата:
Если запускаемая программа Game.exe запускает процесс redebook.exe и сама закрывается, то такой вариант не сработает. :( 2 vlad_exe@vk нужно точнее формулировать задачу Цитата:
Здесь есть совсем простенькое решение для варианта без дочерних процессов. |
Цитата:
Не забывайте, что минуты и секунды - это шестидесятеричная система счисления, в которой Set /A работать увы, не умеет. А часы - принятое у нас деление на 24, хорошо, что не нужно реализовывать европейское 2х12, am и pm. Следовательно, если bat не умеет работать с такими системами счисления, что нужно сделать? Перевести в понятное командному интерпретатору windows счисление, десятичное к примеру. Для этого в том примере, что был дан вам в прошлой теме, я использую две функции - сериализацию времени, и соответственно, его десериализацию. Сначала переводим все данные в секунды, это десятичное число не превышает возможностей арифметики командного процессора, и с ним можно уже работать - вычитать, прибавлять и осуществлять более сложные операции. При этом не стоит забывать о переполнении раз в сутки, тот же пример со стартом в 23:55:01 и завершением в 01:12:37. И только после всех необходимых рассчетов с сериализованным временем его можно десериализовать и вывести понятный человеку результат. Вполне логично это будет организовать в виде функций с передаваемыми им аргументами. Цитата:
Цитата:
|
Цитата:
|
Время: 00:42. |
Время: 00:42.
© OSzone.net 2001-