Состоит из двух компонент:
- Фоновая программа 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.