![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Добрый ночи (у меня так как сейчас во всю ночь). Ребята, нужна ваша помощь (необизательно код, а хотя бы для алгоритм реализации), может кто то имел с чем то подобным. Задача такая: есть например программа для работы с файлом (текстовым) и желательно записать время всех изменении (ну например работы с текстом), то что курсор например из одного места перешел в другое. Ну или еще попроще вроде задача: нужно например записать в textbox время изменения положения курсора (в миллисекундах).
Пример действий проги: курсор передвинулся на 100 пикселей вправао прога например будет отлавливать события каждые 0.5 секунды предположим что она 100 пикселей прошла за секунду, тогда в textbox должно записаться: 0 - старт проги время равно 0 (начальная точка курсора и курсор не успел двинуться) 500 - положение курсора например стало на 47 вправо 1000 - положение на 100 вправо. Теперь например ситуация, курсор стоит на месте 4 секунды и потом двигается на 40 пикселей влево, в textbox должно записаться: 5500. Т.е. время идет, если даже курсор недвигается. Т.е. нужно в конечном итоге решить 2 вещи: 1) пославленную задачу 2) минимум загрузки процессора У меня вот какая идея: читаем системную дату например, и используем событие MouseMove (вроде так) и если действий с мышкой нет, то это событие не выполняется, а если действие есть о мы из текущего времени вычитаем предыдущее которое записанно и в итоге получаем время сколь мышь стаяла. Только вот если вдруг пользователю сбрендит помемять дату то прога полетит можно сказать. В итоге, как бы так реализовать чтобы в проге был реализован щетчик этого времени? Вроде есть, время существования процесса, может по нему определять, или как лучше. Ну и все же желательно к этому чтобы проц не сильно нагружало, так как сами понимаете что прилично может быть обработок. Зараннее большое спасибо всем! |
|||
|
||||
| explorer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 26.2.2008 Репутация: 1 Всего: 2 |
Вообще идея с опросом постоянным как-то пугает. У меня есть подозрение, что один только опрос будет занимать прилично ресурсов.
Есть предложение делать пометки в обработчиках событый (например на то же нажатие клавиши, т.е. перемещение курсора). --------------------
|
|||
|
||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Вот вот, я про тоже. Что если будет постоянно опрашиваться, то будут ресурсы жрать прога, а так же ни какой пользы это приносить не будет (конечно это будет работать, но КПД мне кажеться в минус уйдет). Вот я и думаю как же сделать так чтобы это было хорошее соотношение: и работала и загрузка на минимум. Вот только какие идеи приходят, но потом ломаются, так как то одно не выполняется то другое. Но у меня пока только склонения к тому, чтобы работать со временем процесса(нашего активного потока), ну т.е. время его сущ-ия. с ним уже все манимуляции проводить. Тогда в общем можно будет реализовать. Например такой алг: если мышка стоит более 5-х секунд, то мы таймер программно отключаем до следующего движения. А как только произойдет следующее движение, мы из времени существования потока(или процесса) вычитаем время последнего активного движения. В итоге у нас эта разность и будет равняться времени простоя. Может кто лучше знает как реализовать?
|
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
А если как то так? Правда я взял за основу тики, не особо удачно, ибо кол-во тиков в секунде разное. Но общую тенденцию ты поймешь.
Присоединённый файл ( Кол-во скачиваний: 2 )
TextMouse.rar 34,71 Kb |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |