ActiveWindowWatcher – бесплатная программа для ведения лога активных окон
July 18th, 2008 Begemot Posted in Программирование
Вчера на меня вдруг напал приступ трудоголизма, и я для внутренних целей написал небольшую программку для мониторинга и ведения лога активных окон (GetForegroundWindows). Возможно она может пригодится еще кому-нибудь кто пишет “специфические” приложения, типа вставлялок текста🙂 Итак:
ActiveWindowWatcher - бесплатная программа для ведения лога активных окон.
Использование:
Существуют два режима работы:
1. Автоматическое логирование – окно проверяется по таймеру каждые 50 миллисекунд
2. Ручное – информация об активном окне читает по нажатию горячих клавиш ctrl+shift+p
В обоих режимах если текущее активное окно, тоже что и в прошлый раз, новая строчка в лог не добавляется.
Более подробно в Readme.txt
Программа была написана для себя и быстро, так что без особых наворотов\фич, проблему помогла решить ну и ладно:) Если будет интерес народа, возможно доработаю до чего-то более юзабельного.
Если что добро пожаловать с комментариями.
p.s. Программа написанна с использованием wxWidgets
December 27th, 2008 at 4:03
смотрю так никого эта идея не заинтересовала…
а меня очень интересует исходный код данного решения если автор не против.
December 27th, 2008 at 4:59
зачем?:)
December 27th, 2008 at 1:23
интересует алгоритм сбора окон
December 27th, 2008 at 3:30
А чем классический EnumWindows() плох?
December 28th, 2008 at 4:18
Алгоритм сбора окон приметивен, фактически вся функциональность программы это мой “фреймворк” + 2 процедуры которые собственно и делают всю работу.
Сорцы все проги не дам, а вот этими двумя основными процедурами могу поделится.
December 28th, 2008 at 5:18
буду признателен
в принципе меня интересует цикл поучения данных даже в саму переменную, так как при Вашем алгоритме проц практически не грузится
а те варианты выдачи верхнего окна на WinApi что я находил, при вставке в цикл – грузили проц ~90%
спасибо за помощь
December 28th, 2008 at 6:28
У меня пример с мсдн, доработанный напильников в результате практики, сейчас вышлю на мыло as is
January 9th, 2009 at 2:26
спасибо за код, было позновательно, но попалась на глаза Ваша еще одно програмка – логирование буфера обмена. хорошая реализация, исходник тянет на платный, поэтому спрошу про общие моменты. если я правильно понял то там используется база для хранения sqlite с криптованием. у меня вопрос к реализации (sqlite или wxsqlite)?
January 9th, 2009 at 2:43
🙂 А с какой целью спрашиваете?:)
sqlite + databaselayer, и без криптования.
January 9th, 2009 at 2:50
просто пытаюсь откомпилить wxsqlite а не получается, вот и думал если у Вас этот вариант – напроситься на помощь…
January 9th, 2009 at 3:02
странно, мне sqlite manager говорит что база криптована…
January 9th, 2009 at 3:02
я имею ввиду базу программы clipdiary
January 9th, 2009 at 3:17
wxsqlite не использовал, не знаю почему sqlite manager так думает, но wxSQLitePlus ее нормально открывает. И вообще здесь это оффтопик 🙂
January 23rd, 2011 at 6:45
Спасибо разработчику! Очень полезная программа, я думаю есть смысл ее доработать до коммерческой версии. Лично мне она помогает подсчитать рабочее время, еще бы хотелось бы в ней видеть сохранение, хотя бы в xls, и регистрацию простоя (допустим бездествие мыши и клавы) и скринсейвера.
January 27th, 2011 at 3:52
:))
Есть куча коммерческих и бесплатных программ ГОРАЗДО больше подходящих для трекания времени… есть смысл взять их.
January 27th, 2011 at 11:32
Спасибо большое за подсказку, трекинг принес гараздо больше результатов гугленя, и я нашел то что искал!!! Дороговато правда, но не задумываясь заплатил, уж больно нужная вещь когда прыгаешь между окнами весь день, и не поймешь на какой проект потратил день.
January 27th, 2011 at 12:10
Да, их и бесплатных полно…
вот TimeTracker например, но это веб сервис.
January 27th, 2011 at 12:30
Я нашел WorkTime, там целая куча настроек как я хотел, можно правила создавать по проектам и пауза по скринсейверу и не активности, и отчеты приятные! Сделали как для себя с пониманием проблемы! Находил тормозящие и использующие внешние базы. Ну и такая мелочь, как на русском языке.
June 8th, 2011 at 8:57
Спасибо, помогла быстро и просто найти редиску, ворующую фокус.
April 17th, 2012 at 1:24
Спасибо Вам за программу, но мою проблему она всё равно не решила:
у меня Windows 7. Несколько раз за 10-15 мин. самопроизвольно фокус окна (активность окна программы в которой я работаю: броузер, Word? Excel и т.д.) пропадает. Гугуление говорит по этой проблеме только проверить на вирусы и выправить автоматически реестр. Всё сделал, да ещё и разными программами. ПРоблема осталась. Привожу ниже лог строчек таких моментов (в хронологическом порядке). Сам момент Ваша программа-то фиксирует, а вот пишет только цифры напротив. Поэтому я не могу понять,ч то за процесс ворует фокус окон.
Помогите, пожалуйста, проблему решить, так как переустановка системы у меня очень тяжёлая тема, так как с трудом кучу нужных программ установил и после переустановки буду ещё месяц мучаться.
Пример лога таких моментов:
003. 57:03:433 Not a valid window – (3343038)
003. 59:18:202 Not a valid window – (3474110)
003. 03:52:281 Not a valid window – (3539646)
004. 03:59:394 Not a valid window – (3605182)
003. 05:48:470 Not a valid window – (3670718)
005. 05:56:085 Not a valid window – (3736254)
003. 06:59:359 Not a valid window – (3801790)
April 17th, 2012 at 2:52
Not a valid window – намекает на то что окно появилось получило фокус и тут же было уничтожено, думаю так. Хотя может ошибаюсь – попробуйте запустить программу от имени администратора, может ей прав под семеркой не хватает. Или еще можно попробовать найти Microsoft Spy++ и посмотреть в ней по хендлу окна (цифры в скобочках) что это вдруг получится.
Ну и подумать после чего проблема появилась – может что-то абсолютно нормальное, но кривоватое поставили.