Состоит из двух компонент:
- Фоновая программа ActiveWindowsLogger.exe написанная на С++, которая анализирует открытые окна и записывает в файлы формата CSV данные о том, сколько времени (в миллисекундах) было открыто то, иное окно. Программа может работать только под ОС Windows (Windows 7 32 bit и выше);
- 1С обработка-вьювер для просмотра записанных логов.
Данная разработка имеет полностью открытый исходный код, опубликованный, на гитхабе - https://github.com/alexkmbk/ActiveWindowsLogger.
Disclaimer: Программа разрабатывалась исключительно для мониторинга собственной работы и не предназначена для слежки за сотрудниками, хотя при определенной доработке возможен и такой сценарий работы.
Особенности:
- Открытый исходный код;
- Легковесность фонового трекера (в памяти занимает порядка 2.5 мб и не нагружает процессор с диском);
- Открытый формат хранения данных позволяющий писать собственные парсеры и анализаторы логов (может быть недостатком, если требуется скрытно мониторить работу сотрудника).
Архив содержит в себе файл ActiveWindowsLogger.msi для установки фонового трекера, а также обработку-вьювер ActiveWindowsLogsViewer.epf.
Фоновый трекер ActiveWindowsLogger.exe
После установки трекера с помощью файла ActiveWindowsLogger.msi, в автозапуск автоматически прописывается программа C:\Program Files (x86)\ActiveWindowsLogger\ActiveWindowsLogger.exe
Трекер не имеет своего видимого окна и взаимодействие с ним осуществляется с помощью меню на панели задач:
Доступны следующие команды:
- Open logs folder - открывает в проводнике папку, с логами (она находится по адресу [%APPDATA%]\ActiveWindowsLogger\logs );
- Open settings editor - открывается файл settings.ini в блокноте (файл расположен в том же каталоге что и логи). При сохранении файла settings.ini открытого через этот пункт меню, настройки применяются сразу, автоматически. Если же файл settings.ini был изменен другим способом, то для применения настроек требуется перезапуск трекера;
- Pause - приостанавливает учет времени трекером, при этом иконка приложения изменят свой вид, и становится доступна команда Continue:
В файле settings.ini доступны следующие настройки:
ProgramsFilter - через запятую перечисляются названия процессов (без расширений) которые трекер будет игнорировать.
Однако фильтрацию по процессам можно будет сделать и на более позднем этапе, в обработке-вьювере. Здесь эта настройка скорее позволяет уменьшить количество ненужных дисковых операций;
StopLoggingwhenInactiveInterval - время простоя компьютера в минутах, после которого трекер перестает учитывать время (однако при возобновлении активности продолжит). Если установлено значение 0, то время простоя не учитывается вовсе.
Separator - символ, используемый для разделения колонок в CSV файлах логов. По умолчанию используется запятая (Для русскоязыных региональных настроек Windows, MS Excel использует разделитель точка с запятой).
Независимо от этой настройки, время не учитывается трекером если компьютер находится в режиме блокировки или в спящем режиме.
Сохраняемые трекером CSV файлы содержат 4 колонки:
- Timestamp - дата и время записи;
- Program - название процесса без расширения;
- WindowTitle - заголовок активного окна;
- Time - время в миллисекундах, которое окно было активным.
Проверка активности окна осуществляется каждые 500 миллисекунд. Если окно остается постоянно активным более 60 секунд, то данные записываются в файл не дожидаясь когда окно перестанет быть активным.
Для каждого дня создается отдельный CSV файл:
Обработка ActiveWindowsLogsViewer.epf
Обработка работает как в обычном, так и в управляемом режимах (на русском и английском языках):
Список Отбор по программам\Filter by programs предназначен для установки фильтров по программам (названиям процессов без расширения). Добавить фильтр по программе можно из контекстного меню основного списка обработки:
Список Группировка по программам\Group by programs предназначен для группировки строк по программам (названиям процессов без расширения). То есть, если в этот список добавлена программа, то информация по ней, всегда будет сгруппирована в одну строку, независимо от заголовков окон (в CSV файле фиксируется время отдельно для каждого заголовка окна).
Добавить фильтр по программе можно из контекстного меню основного списка обработки:
Опция Показать с пустым временем\Show with empty time определяет то, будут ли показаны строки с пустым временем. Дело в том, что время в строках отображается в часах и округляется до двух знаков, если за отчетный период, окно было активным менее 0.01 часа, то значение будет округлено до нуля и такие строки по умолчанию не отображаются.
Тестировалось на платформе 8.3.13.1513.