Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Мышь Добавлено: 06.02.11 21:37  

Автор вопроса:  Dan | ICQ: 609276007 
Здравствуйте.
 Скажите пожалуйста, как посчитать "пробег" мышь за всё время работы.
В google и ТЫндыкс не посылайте, я там был и вот, что я нарыл:
http://kbyte.ru/ru/Programming/Sources.aspx?id=112&mode=show
сам пример:
http://zip5.kbyte.ru/ad8aee01-c383-4b55-989e-0f23d370f26a.aspx
---
Я смотрел код там много чего..., вообщем не смог разобраться.
---
ПОЖАЛУЙСТА, ПОМОГИТЕ!!!
ОТ ЭТОГО ЗАВИСИТ СУДЬБА МОЕГО ПРОЕКТА!!!

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 1
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #1 Добавлено: 06.02.11 21:50
SOS

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 06.02.11 22:34
ПОЖАЛУЙСТА, ПОМОГИТЕ!!!
ОТ ЭТОГО ЗАВИСИТ СУДЬБА МОЕГО ПРОЕКТА!!!

Пафосно.

1. Определяешь положение мышки с помощью API-функции GetCursorPos
2. Находишь расстояние с предыдущем положением с помощью формулы sqr((x1-x2)^2+(y1-y2)^2)
3. Увеличиваешь пройденный путь на найденное в предыдущем пункте расстояние
4. Приравниваешь предыдущее положение к текущему
5. Все вышеописанное крутишь в таймере
6. И не забываешь при старте программы определить текущее местоположение курсора
7. ???????
8. Бо!

Вопросы?

Ответить

Номер ответа: 3
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #3
Добавлено: 06.02.11 23:47
еще, наверное, надо узнать размер пикселя, чтобы перевести всё в метры:-) Правда пиксели по диагонали больше, чем по вертикали/горизонтали. Но это не учтешь)

Ответить

Номер ответа: 4
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #4
Добавлено: 07.02.11 09:26
за всё время работы

еще нужно в автозапуск засунуть и чтобы запускалась без сбоев.

Ответить

Номер ответа: 5
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #5 Добавлено: 07.02.11 12:58
То есть:
  1.  
  2. Dim y as point
  3. Dim x as point
  4. Dim y1 as point
  5. Dim x1 as point
  6. Dim s as point
  7. ... Form load ...
  8. y1= corsorposition.y
  9. x1= corsorposition.x
  10. ...TimerTick...
  11. y= corsorposition.y
  12. x= corsorposition.x
  13. s=sqr((x1-x2)^2+(y1-y2)^2)

Ответить

Номер ответа: 6
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #6 Добавлено: 07.02.11 13:18
Ведь так?

Ответить

Номер ответа: 7
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #7
Добавлено: 07.02.11 16:56
Пробуй.

Ответить

Номер ответа: 8
Автор ответа:
 HIWORD



Вопросов: 0
Ответов: 14
 Профиль | | #8 Добавлено: 07.02.11 20:51
Нафига таймер?
Я бы сделал через SetWindowsHookEx(WH_MOUSE_LL ...
Кроме того, есть любопытная GetMouseMovePointsEx

Ответить

Номер ответа: 9
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 07.02.11 20:53
HIWORD пишет:
Нафига таймер?

Чтобы было меньше вопросов и понятней.

Ответить

Номер ответа: 10
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #10 Добавлено: 07.02.11 21:21
То есть:
 
Dim y as point
Dim x as point
Dim y1 as point
Dim x1 as point
Dim s as point
... Form load ...
y1= corsorposition.y
x1= corsorposition.x
...TimerTick...
y= corsorposition.y
x= corsorposition.x
s=sqr((x1-x2)^2+(y1-y2)^2)


А в таймере надо новые значения переменной в конце "тика Таймера" переводить предыдущее?
HIWORD, можно по подробнее?

Ответить

Номер ответа: 11
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #11
Добавлено: 07.02.11 21:51
0. Где ты упомянул, что используешь дотнет?
1. ААаааааааааааааааааааааа! Мой моск! x as Point! y as Point! Ааааааааааааа! Хм. Мммм... Какой изврат...
2. Point сам в себе содержит координаты, зачем тебе по переменной поинт на каждую координату?!
3. Как сочетается это
  1. y1= corsorposition.y
  2. x1= corsorposition.x


с этим
  1.  
  2. Dim y1 as point
  3. Dim x1 as point



Пиши вот это:
  1.  
  2. Dim s As Single, lastPos As Point
  3. ... Form load...
  4. lastPos = cursorposition
  5. ... timertick ...
  6. s+=sqr((cursorposition.x - lastPos.x)^2 + (cursorposition.Y - lastpos.Y)^2)
  7. lastPos = cursorposition

Ответить

Номер ответа: 12
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #12 Добавлено: 08.02.11 11:36
СПАСИБО!!! Всё понял, кроме... а почему s+=sqr... ?

Ответить

Номер ответа: 13
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #13 Добавлено: 08.02.11 11:51
В смысле почему s+= ?

Ответить

Номер ответа: 14
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #14
Добавлено: 08.02.11 13:06
s+=
тоже самое что
s = s +

так же как и
s/= ...
s = s / ...

s*= ...
s = s * ...

Ответить

Номер ответа: 15
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #15 Добавлено: 08.02.11 13:37
СПАСИБО.
ТЕПЕРЬ ВСЁ ПОНЯТНО.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам