У кого какие мысли , кто сталкивался с подобными задачами ?
да именно . И скорее всего вариант с эмуляцией отпадает.
Остается изучать вариант с приложением на с++/delphi.
Если кто пробовал что то подобное отпишите.
> да именно . И скорее всего вариант с эмуляцией отпадает.
> Если кто пробовал что то подобное отпишите.
Базовая функциональность:
1) Создаем класс UserLog с методами onUserEvent(param) и saveLog().
2) Инстанцируем п.1: UserLog currentUserLog = new UserLog();
3) В каждом клике по кнопке - вызываем currentUserLog.onUserEvent(param).
4) Когда нужно записать лог активности пользователя в БД - вызываем currentUserLog.saveLog().
Улучшенная функциональность:
5) Усложняем все до невозможности:
5.1) Смотрим где инстацируем. Смотрим права доступа к этому участку кода.
5.2) Избавляемся от типизации параметра как текст, потому что неэффективно анализировать потом - разбором строки. Например такие варианты:
5.2.1) Вводим несколько методов для сбора данных - например onKeyUserEvent(param), onMouseEvent(param).
5.2.2) Или лучше - ввести класс события, который является EventObject-ом, от которого наследуем классы KeyUserEvent, MouseUserEvent, в итоге типизируем метод вызова - суперклассом события: onUserEvent(userEvent:UserEvent). При этом класс события UserEvent (и его подклассы MouseUserEvent, KeyboardUserEvent, ComponentChangeStateUserEvent и т.д.) - инкапсулируют в себе все необходимые данные о данном действии пользователя.
5.3) Вместо п.3 (прямой вызов метода) - используем генерацию событий, подписку на события, слушатели.
компилируем...
--
Евгений Н.
> 2. попытаться симулировать капчуринг . записав координаты мышки и
> потом по ним воспроизводить это все (тут вопрос в производительности,
> тк нужно все это сохранять в базу и потом читать ).
> У кого какие мысли , кто сталкивался с подобными задачами ?
Если речь о записывании действий внутри приложения, то полагаю, надо
смотреть в сторону паттерна Command. Т.е. записывать действия в
историю и путем их воспроизведения - получать оригинальный результат,
также можно после какихто сложных действий, типа рисование сохранять
состояние всего приложения, если возможно.
А если достаточно захвата картинки действий пользователя, то надо
смотреть в сторону acrobat connect, они доставляют какой-то "волшебный"
компонент, и это становится возможным, если кто-то знает подробности
про этот компонент, было бы любопытно узнать.
--
Denis Sheremetov
Я бы для начала описал всё что надо записывать:
нажатие левой клавиши мышки
движение между нажатием и отпусканием
отпускание левой клавиши мышки
или клик, если драг не играет роли в конкретном случае
Записывать координаты и время от последнего действия и может какой-то
идентификатор цели. в таком случае в базу будет падать только самое
необходимое.
Более точное описание задачи может навести на более трезвые мысли. :)
--
Oleg Galaburda
http://blog.actualwave.com/
>Олег Галабурда
А воспроизводить потом кто это будет?
Это поглядеть как пользователь тыкался по приложению чтоли? Сразу ли
он нашёл то что хотел?
Если записывать клики по окну в целом, то наверно это сложно будет
воспроизвести потом учитывая анимации и ожидания подгрузок.. А вот
если как Denis Sheremetov сказал (Command), это наверно ближе к жизни.
например можно ввести очки действия.. и у каждого пользователя имеется свой счет активности.
Поясняю!!1
Опр. объект имеет в себе определенные очки, и при нажатии суммируются предыдущие и текущий, ну и ход мыслей понятна и реализация проста :D
--
С уважением, Скорик Андрей. andrew...@gmail.com