И так, версия ВТОРАЯ базируется на первой, но сильно переработана. Поэтому и кривоват исходник. Но всё тестируется и прогоняется. Чекаются баги, утечки памяти и пр. Теперь WIDLE разумней называть не утилитой, а программой.
Скачать: WIDLE 2
WIDLE v.0.0.2 --- Windows IDLE
Программа предназначена для отслеживания состояния пользователя по трём статусам:
- Пользователь активен (ACTIVE)
- Пользователь не активен (IDLE)
- Пользователь ушёл (AWAY)
- REAL_IDLE_TIMEOUT
- REAL_AWAY_TIMEOUT (в секундах)
Проверка состояния производится каждые TIME_CYCLE секунд.
Режимы запуска.
При запуске программы без аргументов выдаётся справка по возможным режимам её работы, которые переключаются посредством аргументов командной строки - опций.
Windows User-IDLE-Time print & execute command in Demonizer-Mode v.0.0.2.0 Use it: widle.exe [one option] -h - this help -p - print IDLE to display and return IDLE-value in exit-code -v - interactive visualization IDLE -i - install WIDLE in Demonizer mode (-z) to Autorun from current DIR -u - uninstall WIDLE from Autorun -e - edit configuration in GUI -z - Demonizer-Mode for execute command in cycle Demo: widle.exe -v For more options edit 'widle.xml' And see http://mytoiletserver.blogspot.com/ To start the WIDLE with a particular option, press the corresponding key: [H, P, v, i, u, E, Z] or other any key for exit...
-P - отображение времени бездействия пользователя в окне терминала и возвращение его значения в коде возврата программы. Этот режим может быть полезен при вызове программы из скриптов.
-V - интерактивная визуализация времени бездействия пользователя. Чисто демонстрационный режим.
-i - установка программы в автозапуск в режиме "Демонайзер".
-U - удаление программы из списка автозапуска.
-E - вызов диалогового окна редактирования конфигурации в GUI.
-Z - основной рабочий режим - "Демонайзер". В этом режиме программа в цикле проверяет статус пользователя и выполняет команды в соответствии с алгоритмом работы и настройками конфигурации.
Для старта программы с одной из опций можно нажать соответствующую кнопку или любую другую для закрытия приложения.
Файл конфигурации.
При первом запуске программы, она сама создаёт файл конфигурации в рабочей директории, рядом с собой. Файл имеет древовидный формат XML, что позволяет логически разделять (хоть и не многочисленные) блоки конфигурации. При запуске программы без аргументов предлагается отредактировать файл конфигурации в диалоговом окне GUI, нажав кнопку 'E'. Настройки программы хранятся в секции "ProgramOptions".
Навязчивость.
Существует два варианта реакции при проверке, которые переключаются флагом INTRUSIVE в файле конфигурации. При установленном флаге поведение программы является НАВЯЗЧИВЫМ, что означает выполнение соответствующей состоянию команды при каждой проверке, т.е. каждые TIME_CYCLE секунд. Этот режим может быть полезен при конкурирующем управлении, когда кроме WIDLE ещё управление может исходить, например, от CRON. В противном случае, команда выполняется только при смене состояния.
Проверка процессов.
В состоянии пользователя ACTIVE предусмотрена проверка запущенного Интернет-ориентированного процесса. Эта проверка выполняется при установленном флаге PROCESS_LIST. А список процессов задаётся в опциях файла конфигурации
PROCESS_LIST_N. Если пользователь активен, но не обнаружен ни один из списка Интернет-ориентированный процесс, то состояние приравнивается к IDLE. Использовать этот функционал есть смысл, если вы работаете, например, в Lightroom или Photoshop при не запущенном браузере или Skype.
Метод получения от системы списка запущенных процессов регулируется значением GET_PROCESSES_METHOD. Рекомендуемый метод: NTQuery=1. Он подходит как для 32-ух, так и для 64-ёх разрядных систем и процессов.
Но в современных реалиях часто оказывается, что браузер запущен постоянно и этот функционал является избыточным. Включайте его в случае необходимости повышения чувствительности алгоритма.
Команды.
В программе, в зависимости от состояния пользователя, предусмотрено выполнение три команды:
- COMMAND_AWAY
- COMMAND_IDLE
- COMMAND_ACTIVE
В рамках управления скоростью закачки Transmission команды имеют вид, описанный в этой заметке.
Видимость и журналирование.
Отображать консольное окно или нет программа решает по флагу CONSOLE_HIDE_IN_DEMONIZER_MODE в файле конфигурации.
Степень отображаемой информации зависит от флагов:
- LOG_ENABLE - ведение журнала
- DEBUG_ENABLE - отображение и запись в журнал дебаг-сообщений
- ADDITIONAL_MESSAGES - отображение и запись в журнал дополнительных сообщений
Установка.
- Скачайте WIDLE v.0.0.2 Yandex.Disk
- Скопируйте файлы из архива в любое удобное место, например C:/USR
- Запустите исполняемый файл, нажмите 'E', отредактируйте конфигурацию по вашим задачам.
- Нажмите 'I' для установки программы в список автозапуска в режиме "Демонайзер".
IXL.dll
IXL.dll - это динамически подключаемая библиотека, реализующая функционал ведения журнала и предоставляющая интерфейс к файлам конфигурации формата XML. Эта библиотека необходима для работы widle.exe.
Установка и настройка OpenSSH.
OpenSSH используется на стороне Windows для выполнения команд на удалённых UNIX/Linux серверах. WIDLE может выполнять любые команды, в том числе и вызов SSH с аргументами. Таким образом, связкой WIDLE-OpenSSH реализовано взаимодействие программных продуктов на различных платформах: Windows и UNIX/Linux. В рамках задачи управления скоростью закачки Transmission это взаимодействие можно представить следующей схемой последовательного выполнения команды управления:
- Установка OpenSSH
- Генерация ключей:
- Содержимое публичного ключа копируется на сервер в файл "authorized_keys" в каталоге пользователя, под которым мы будем авторизоваться на сервере без пароля.
- Проверяем вход на сервер по протоколу SSH
ssh-keygen -t rsaКстати, смена пароля на ключ:
ssh-keygen -p
mkdir ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysПроцесс можно упростить. Команда
ssh-copy-id user@serverпозволяет скопировать ключ не редактируя файлы вручную. Приватный ключ хранится на Windows-машине под разграниченными правами, понятно почему - он секретный. Далее ещё можно читать про "ssh-agent", "ssh-add" и пилить ssh_config.
ssh -v user@serverПри первом входе SSH интересуется доверяем ли мы ключу сервера? Если да, то в файл "~/.ssh/known_hosts" на Windows стороне добавляется ключ к серверу.
1. Реализация RPC-протокола Transmission. Так можно избавиться от применения не простого для многих в установке и настройке пакета OpenSSH. Переименование проекта в "Automatic-Transmission".
2. Реализация сетевого взаимодействия дубликатов программы для совместной регулировки скорости закачки одного Transmission от множества Windows PC в локальной сети с одним роутером, смотрящим в Интернет.
3. Шифрованный способ хранения паролей.
4. Реализация HotKeys, паузы и посылка команды Away при закрытии приложения.
Паранойя.
Программа WIDLE не оснащена вредоносным кодом. Весь функционал описан и скрытых возможностей приложение не имеет. Тем не менее, вы используете программу на свой страх и риск. Ни каких обязательств я ни перед кем не несу.
http://mytoiletserver.blogspot.com/search/label/WIDLE
Комментариев нет:
Отправить комментарий