![]() |
|
Модераторы: xvr |
![]()
|
|
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Всем доброго времени суток...
Собственно к делу. Возникла необходимость написания программы слежки за сотрудниками. То есть сбор активности клавиатуры, мыши + сбор скриншотов в определ. отрезки времени, пока на таком вот простом уровне. Архитектура следующая - рабочие станции - Linux - например Убунту, сервер - FreeBSD(Apache). При включении рабочих станции демон начинает собирать инфу(настройки видимо передаются сервером) и отправляет для хранения в базе на сервере. В будущем еще планируется возможность просмотра юзерами своей статистики через веб интерфейс... - разработка ведется на Plain C(Обязательное условие) Собственно возникло несколько вопросов, поскольку с сетями раньше работал мало. Ну и помимо этого есть моменты. Итак...в первую очередь.. 1)Тривиальный вопрос. как програмно снять скриншот ? Гугл выдает лишь скриншоты всякие а не способ. Казалось бы простая вещь но что то я не дотумкал ) 2) Как логичнее было бы собирать статистику ? Формировать структуру (клава+мышь + скриншот (см вопрос3)) и отправлять на сервер... Опять же возникает вопрос реализации сериализации (хм..)) 3) Пожалуй логично было бы не хранить сами скрины в базе, а лишь пути к ним, Однаку тут другая проблема возникает. Отдельно передавать скрины должны клиенты или разделение реализовывать на сервере ? --------- пока все .... Хотя вопросы пожалуй еще есть... надеюсь на участие )) Это сообщение отредактировал(а) chaZm - 5.6.2008, 18:08 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
смотреть исходники gnome-screenshot XML -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Хм..действительно...по скриншоту как я не допер :( Про XML ... К сожалению с XML серьезно не работал.... Подскажите если можно принцип реализации. на пальцах... ну или какие маны курить.. спасибо |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
принцип реализации чего? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Ну на мой 2й вопрос вы ответили XML...
соотв. в нем существуют какие либо методы для решения проблемы.... собственно реализацию как раз того о чем я интересовался в п.2.. опять же если не сложно |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
XML я привел как пример возможной кроссплатформенной сериализации статистики ну в итоге получим что-то такое
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Кстати если я правильно помню, то X-сервер может работать и по сети, т.е. может быть можно как-то подключиться к оконному серверу с другой тачки. Может быть даже можно как-то настроить драйвера клавиатуры и мышки, чтобы записывались логи. Может быть даже тупо поменять исходники драйверов в ядре и пересобрать его под свои нужны.
|
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Хм..интересно.. попробую копнуть в этом направлении..
XML тоже посмотрю... можт получится что то взять из него.. Тогда следующая пачка впросов.. 1)Отслеживание нажатий клавиатуры. в одной из тем откопал вот что.. "Нашел только один способ - подключиться напрямую к файлу клавиатуры (типа /dev/input/event0) и читать события из него. Там на каждое событие клавиатуры (нажал, повтор, отпустил) приходит по два, кажется, события. Их формат можно найти в /usr/include/linux/input.h, если не ошибаюсь." (С)bsa собственно вроде бы не плохой метод... Или же есть альтернатива? 2) Аналогичный вопрос по мыши... Мне нужно отслеживать активность, то есть получается аналогичный случай... Пишется ли подобная статистика куда нибудь? Пока все... заранее спасибо |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
все альтернативы так или иначе основаны на этом способе
/dev/input/* (один из event-ов) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Посидел, покумекал....
Сильно не пинать если вопросы примитивные, не так давно на линь перешел.... Во- первых... открыть /event0 и тд. на чтение.... Это можно сделать лишь из под рута.. Не будет ли с этим проблем из под юзера.. И второе... нужно ли будет его обновлять...в конце концов требуется чтение клавиш\мыши на лету (ну в той или иной мере). Нужно ли будет файл постоянно обновлять.... Кроме того...в input.c нет структуры для мыши.... Где можно посмотреть формать для нее? Заранее спасибо |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Обновлять файл? Ты как себе это представляешь? Надо его открыть в не блокирующем режиме и ждать поступления данных с помощью select. |
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Хм...я не совсем корректно выразился... Но в любом случае ответ именно тот что я хотел слышать... спасибо остается вопрос по мыши.. кто нибудь может помочь ? Это сообщение отредактировал(а) chaZm - 6.6.2008, 17:36 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
chaZm, открой исходники ядра и сам узнай. Думаю, ты можешь найти нужную структуру в /usr/include/linux/input.h
|
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Дело как раз в том что в input.h описывается подобная структура для клавиатуры и как я понял джойстика. В том числе и force feedback... Для мыши там ничего нет... продолжаю копать исходники.... |
|||
|
||||
| chaZm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Рылся и гуглил..в итоге накопал интересную идею...
--------- evdev is the generic input event interface. It passes the events generated in the kernel (since verson 2.6.8) straight to the program, with timestamps. This is the way for X to get keyboard and mouse events. It allows for multihead in X without any specific multihead kernel support. ---------- Я так понимаю evdev как раз таки считаывает из тех самых event0 то что мне надо и не стоит изобретать вилосипед.... кажется даже нашел болеее менее готовое решение проблемы - xevdevServer.. Попробую с ним поработать... правда она на c++... но интересные идеи вроде бы есть... Задумался...а не в блокирующем ли режиме будет работать evdev... Это сообщение отредактировал(а) chaZm - 8.6.2008, 13:04 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |