==Системные требования приложения==
1. Работа в операционной системе Mac OS X (версии 10.xx)
2. Среда разработки XCode
3. Работа в скрытом режиме. Программа не должна быть явно видна пользователю
4. Возможность автозапуска при старте операционной системы без запроса на повышение прав
5. Возможность задания пароля для входа в программу. Хранение не пароля, а его MD5 свертки. При задании пароля проверка повторным вводом
6. Вызов интерфейса запущенной программы по нажатию горячей клавиши: Ctrl-Alt-[буква латинского алфавита].
По-умолчанию: Ctrl-Alt-S, варианты выпадающим списком
==Перехват ввода с клавиатуры==
1. Мультиязычный перехват вводимых символов с клавиатуры.
2. Перехват непечатных символов (Enter, Backspace, Tab и т.д.)
3. Запись в лог-файл.
Примечание: Символы накапливаются в буфер, который записывается в лог-файл при смене текущего активного окна, нажатие клавиши Enter (Return), после чего очищается.
==Перехват буфера обмена==
Перехват текстового содержимого буфера обмена при его изменении (ограничение по длине 500 символов) и запись в лог-файл.
==Перехват навигации по сайтам==
Определение URL страниц посещенных сайтов (без привязки к браузеру ) и запись в лог-файл.
==Создание снимков экрана==
1. Создается снимок текущего активного окна в формате jpg.
2. Возможность выбора качества сжатия jpg: Хорошее-Нормальное-Низкое
(по-умолчанию Низкое минимально необходимое для возможности чтения текста).
3. События для снимка экрана:
• смена активного окна (отключаемая опция)
• изменение буфера обмена (отключаемая опция)
• смена URL в браузере (отключаемая опция)
• через определенный интервал времени (отключаемая опция) .
==Переключения языка интерфейса==
Язык интерфейса должен переключаться в настройках программы. Данные должны браться из текстового файла (см. приложение 1) . Необходимо использовать существующие там идентификаторы. Эталлон english.lng.
Если в какой-либо локализации нет нужного идентификатора, то берем английский вариант.
Формат лог-файла
[Событие][Дата-Время][Активное приложение][Заголовок приложения][Значение] [Имя пользователя]
Событие (текст):
'KEYBOARD', 'SCREENSHOT', 'CLIPBOARD_SET', 'URL'
KEYBOARD: перехваченный текст, например: 'Привет проверка <Return>'
CLIPBOARD_SET: перехваченный текст буфера обмена, лимит 500 символов
URL: перехваченный URL, например '
SCREENSHOT ID:XXX [причина создания], например 'ID:033 При изменении буфера обмена'
Коды событий для SCREENSHOT (ID):
031 смена окна
032 смена URL
033 изменении буфера обмена
==Передача записанного лога по email==
Формат передачи:
текстовый файл с разделителями, запакованный в zip-архив. Передаются данные за текущий день.
[Событие][Дата-Время][Активное приложение][Заголовок приложения][Значение] [Имя текущего пользователя]
Периодичность: от 3 мин
==Передача информации в личный кабинет на веб-сайт==
Формат передачи: POST запрос с параметрами и файлом с данными *
Периодичность: от 5 мин
* Протокол обмена данными с сайтом будет сообщен в рабочем порядке.
==Примерный внешний вид интерфейса==
см. Приложение 2
==Что мы хотим получить в итоге=================================
Исходные коды (проект XCode)