Здравствуйте.
Я сейчас продолжаю модифицировать программу. Расширяю функционал (хочу добавить логирование стираемых файлов, но тут хардкор с журналом безопасности и настройками windows). Постараюсь учесть ваше пожелание, т.к. вполне удобно для некоторых типов файлов так делать.
Внёс существенное исправление в программу: теперь .ini-файл записывается в UTF-8, поэтому всякие разные шрифты (в том числе кириллические) будут сохраняться и читаться хорошо. Очень благодарен за ценный совет Rustamer: http://forum.ru-board.com/profile.cgi?action=show&member=Rustamer
Тут возможны сложности не технического плана. Если даже предположить, что у вас есть база паролей, то может оказаться, что в файлах пользователя уже хранятся пароли, которые были введены до того, как вы стали мониторить файлы. А пока записи в файл не произойдёт, то вы и не узнаете, что там лежит пароль.
Мне кажется, что тут надо повесить индексатор на каталоги/диски (типа ElasticSearch+плагин) и периодически мониторить пароли по всему содержимому. Я бы сам хотел так сделать, но это будет непросто. Помните канувшего в лету Google Desktop Search? Вот классная штука была! Жаль что на новых windows серверах она не запускается.
1. Поправил быстродействие. Теперь иконки файлов беруться из кеша, а не читаются для каждого файла.
2. Добавил клик по баблу — действительно прикольная штука получилась!!!
«заметно подтормаживает приложение при клике в трее» — вполне возможно. Тут много моментов. Во первых — проверка существования файла. Во вторых — чтение иконки файла (как-то не задумывался, что она тоже требует ресурсов. Первое, что приходит в голову — сделать кеш иконок). Буду чинить. Отпишусь, когда сделаю.
Про клик в бабл — подумаю. Но будет ли удобно, если в момент нажатия файл в бабл вдруг подменится другим бабл и вы откроете не то, что хотите?
stroiproject — это я начинал эту программу из одного старого проекта, вот его namespace и остался. Сейчас уже убрал.
«заметно подтормаживает приложение при клике в трее» — вполне возможно. Тут много моментов. Во первых — проверка существования файла. Во вторых — чтение иконки файла (как-то не задумывался, что она тоже требует ресурсов). Буду чинить. Отпишусь, когда сделаю.
Спасибо.
Я подумаю на открыванием по нажатию, потому что обычно нажимают на надоедливые баллоны, чтобы они закрылись. Я не нашёл как сделать на баллон кнопку «закрыть» (везде пишут «как», но вот у меня нет такой настройки, поэтому, как только выясню — поэкспериментирую с этим). Пока — скачайте 1.0.7 — обновил до наблюдения за сетевыми путями.
«Было бы забавно в конце рабочего дня или рабочей недели посмотреть статистику изменения файлов.» — Есть журнал логов Windows, надо только настроить его нормально, чтобы собирать статистику. Но он пухнет так, что мама не горюй. :O
Проблема сбора статистики по изменениям файлов имеет определённую проблему. Некоторые приложения, например, не в суе будет помянутый MS Office, не просто сохраняет файлы. Он сначала создаёт временный, потом удаляет старый и пересоздаёт новый файл со старым именем. Некоторые программы пишут в файл по два раза при сохранении и т.д… Поэтому собранная статистика будет далека от реального положения дел.
«записью в лог, но без оповещений» — пока у приложения чёткая цель — оповещать о текущих изменениях. Поэтому иногда стоит остановиться, чтобы не писать функции ради прикола. Можно слишком увлечься не туда… Надеюсь вы понимаете, что это чревато для личной жизни :)
Не хотелось писать диалог для настроек. Мне ini как-то тоже не очень, но он как-то менее подвержен внесению ошибок руками, чем редактирование xml напрямую.
Например, сделать копипасту имени каталога в ini-файл проще, чем выбирать какой-либо каталог стандартными средствами windows в диалоговых окнах или писать руками теги xml.
Тут уж если и не ini, то json подошёл бы, но он не сишарпабельный :)
«Сделать русский язык» — Однозначно! Как «разберусь» с локализацией — сделаю. Постараюсь не откладывать в долгий ящик.
«Вот сделать бы лог появления, копий этих файлов и историю изменения/удаления.» — за одним каталогом можно следить. Уследить за процессом я цели не ставил. Ваша задача из разряда администрирования. У них точно такие утилиты есть. Правда не все бесплатные. В принципе можно сделать ещё одну секцию, чтобы мониторить всё, что происходит в каталоге без исключения, но можно подумать и сделать по секции с настройками на каталог, но это на будущее.
Коллеги, я тут нечаянно отменил комментарий «xsikor». Прошу прощения. Вот комментарий:
>> Немного не логично с точки зрения UI выводить новые файлы сверху вниз т.к. приходится вести мышкой «достаточно» большое расстояние от иконки самого приложения в трее
Мой ответ:
Возможно, вы правы. Надо будет сделать настройку и обозначения направления движения файлов. Постараюсь учесть в будущих версиях.
«уведомления желательно сделать отключаемыми» — согласен, потому что, например, при разархивировании, копировании каталогов или сборке проектов их бывает неоправданно много. Я пока не придумал, как сделать этот «момент» более дружелюбным, т.к. он возникает совершенно неожиданно. Может делать ограничения по количеству выводов сообщений за единицу времени?
«надо исключить системные директории из слежения» — По-умолчанию диск C:\ отключен. Для исключения из наблюдаемых путей есть раздел [FoldersForExceptions]. Вот как он выглядит у меня:
Т.е. я наблюдаю диски D:\ и F:\ полностью, но при файловых операциях в указанных каталогах программа не реагирует. Чтобы быстрее добавить каталог в исключения я написал контекстное меню проводника:
«добавить стандартные папки типа рабочего стола, загрузок, изображений и прочего » — Пропишите их в разделе [FoldersForWatch]:
Но тут есть один баг в компоненте, который читает ini-файл. Он кроказаблит пути с кириллицей и исключает их из наблюдения. Пока не знаю как победить. Так что пока только пути с латинскими буквами.
Спасибо за предупреждение. Хоть по вашей ссылке об этом и написано в 2011 году, но microsoft не всегда спешит исправлять тонкие места годами. Надо будет понаблюдать.
Общая проблема как больших программных продуктов, так и продуктов, которые пишутся в компаниях своими силами. Отсутствие внутреннего маркетинга может сильно тормозить развитие и внедрение даже там, где это необходимо и полезно. Самый примитивный способ делать это — как в Midnight Commander — одна строчка отдана под «рекламу» функций, которые может делать программа. Я через неё вылез, например, на очень интересные шоткаты, которыми с удовольствием пользуюсь уже несколько лет. Вставьте такие сообщения внизу программы и постоянно обновляйте их на экране (плюс переход за один клик к этим функциям). Пользователь один раз прочитал, два, пять раз, а потом решит попробовать. Если ему ненавязчиво не напоминать, то наступит «гомеостаз» когда пользователь привыкнет к паре-тройке функций и больше не будет ничем интересоваться.
Подождите делать выводы, внимательно дочитайте до конца тезис этого господина. Он утверждает, что если бы в России уже сейчас была армия IT-шников, то она бы являлась балластом для страны. Это произошло потому что в фантазиях этого господина нет четкого определения «надо». Его «надо» определяется не экономической обстановкой, не потребностями людей и бизнеса, а прихотью, которую он обьяснить не в состоянии. Ему хочется, чтобы у него был самый большой, и вот когда будет «надо», то «он», конечно, не подведёт и вырастет. Я даже не буду настаивать на повторении тезиса уважаемого господина, что если ли бы «он» был таким уже сейчас, то скорее всего был бы балластом.
Я сейчас продолжаю модифицировать программу. Расширяю функционал (хочу добавить логирование стираемых файлов, но тут хардкор с журналом безопасности и настройками windows). Постараюсь учесть ваше пожелание, т.к. вполне удобно для некоторых типов файлов так делать.
Предлагаю скачать новую версию https://sourceforge.net/projects/filechangeswatcher/
Мне кажется, что тут надо повесить индексатор на каталоги/диски (типа ElasticSearch+плагин) и периодически мониторить пароли по всему содержимому. Я бы сам хотел так сделать, но это будет непросто. Помните канувшего в лету Google Desktop Search? Вот классная штука была! Жаль что на новых windows серверах она не запускается.
2. Добавил клик по баблу — действительно прикольная штука получилась!!!
Прошу скачать обновление.
«заметно подтормаживает приложение при клике в трее» — вполне возможно. Тут много моментов. Во первых — проверка существования файла. Во вторых — чтение иконки файла (как-то не задумывался, что она тоже требует ресурсов. Первое, что приходит в голову — сделать кеш иконок). Буду чинить. Отпишусь, когда сделаю.
Про клик в бабл — подумаю. Но будет ли удобно, если в момент нажатия файл в бабл вдруг подменится другим бабл и вы откроете не то, что хотите?
«заметно подтормаживает приложение при клике в трее» — вполне возможно. Тут много моментов. Во первых — проверка существования файла. Во вторых — чтение иконки файла (как-то не задумывался, что она тоже требует ресурсов). Буду чинить. Отпишусь, когда сделаю.
Я подумаю на открыванием по нажатию, потому что обычно нажимают на надоедливые баллоны, чтобы они закрылись. Я не нашёл как сделать на баллон кнопку «закрыть» (везде пишут «как», но вот у меня нет такой настройки, поэтому, как только выясню — поэкспериментирую с этим). Пока — скачайте 1.0.7 — обновил до наблюдения за сетевыми путями.
«Было бы забавно в конце рабочего дня или рабочей недели посмотреть статистику изменения файлов.» — Есть журнал логов Windows, надо только настроить его нормально, чтобы собирать статистику. Но он пухнет так, что мама не горюй. :O
Проблема сбора статистики по изменениям файлов имеет определённую проблему. Некоторые приложения, например, не в суе будет помянутый MS Office, не просто сохраняет файлы. Он сначала создаёт временный, потом удаляет старый и пересоздаёт новый файл со старым именем. Некоторые программы пишут в файл по два раза при сохранении и т.д… Поэтому собранная статистика будет далека от реального положения дел.
«записью в лог, но без оповещений» — пока у приложения чёткая цель — оповещать о текущих изменениях. Поэтому иногда стоит остановиться, чтобы не писать функции ради прикола. Можно слишком увлечься не туда… Надеюсь вы понимаете, что это чревато для личной жизни :)
Но на программу у меня есть планы.
Например, сделать копипасту имени каталога в ini-файл проще, чем выбирать какой-либо каталог стандартными средствами windows в диалоговых окнах или писать руками теги xml.
Тут уж если и не ini, то json подошёл бы, но он не сишарпабельный :)
«Вот сделать бы лог появления, копий этих файлов и историю изменения/удаления.» — за одним каталогом можно следить. Уследить за процессом я цели не ставил. Ваша задача из разряда администрирования. У них точно такие утилиты есть. Правда не все бесплатные. В принципе можно сделать ещё одну секцию, чтобы мониторить всё, что происходит в каталоге без исключения, но можно подумать и сделать по секции с настройками на каталог, но это на будущее.
>> Немного не логично с точки зрения UI выводить новые файлы сверху вниз т.к. приходится вести мышкой «достаточно» большое расстояние от иконки самого приложения в трее
Мой ответ:
Возможно, вы правы. Надо будет сделать настройку и обозначения направления движения файлов. Постараюсь учесть в будущих версиях.
«уведомления желательно сделать отключаемыми» — согласен, потому что, например, при разархивировании, копировании каталогов или сборке проектов их бывает неоправданно много. Я пока не придумал, как сделать этот «момент» более дружелюбным, т.к. он возникает совершенно неожиданно. Может делать ограничения по количеству выводов сообщений за единицу времени?
«надо исключить системные директории из слежения» — По-умолчанию диск C:\ отключен. Для исключения из наблюдаемых путей есть раздел [FoldersForExceptions]. Вот как он выглядит у меня:
Т.е. я наблюдаю диски D:\ и F:\ полностью, но при файловых операциях в указанных каталогах программа не реагирует. Чтобы быстрее добавить каталог в исключения я написал контекстное меню проводника:
«добавить стандартные папки типа рабочего стола, загрузок, изображений и прочего » — Пропишите их в разделе [FoldersForWatch]:
Но тут есть один баг в компоненте, который читает ini-файл. Он кроказаблит пути с кириллицей и исключает их из наблюдения. Пока не знаю как победить. Так что пока только пути с латинскими буквами.
Все настройки в разеде «Open Settings»: