Страница: 1 | 2 |
Вопрос: Пробег мыши :))))))
Добавлено: 21.11.05 16:42
Автор вопроса: HACKER
амиго один попросил прогу наваять :) Короче надо каким-то макаром засеч пробег мыши по X and Y отдельно. Кое-что я накодил:
Private Type Now_POINTAPI
x As Long
y As Long
End Type
Private Type Last_POINT
x As Long
y As Long
End Type
Private Type Last_POINT_Stop
x As Long
y As Long
End Type
Dim Curs As Now_POINTAPI
Dim LastCurs As Last_POINT
Dim LastPoint As Last_POINT_Stop
Private Sub Form_Load()
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
GetCursorPos Curs
If (LastPoint.x = Curs.x) And (LastPoint.y = Curs.y) Then Exit Sub
LastCurs.x = LastCurs.x + Curs.x
LastCurs.y = LastCurs.y + Curs.y
LastPoint.x = Curs.x: LastPoint.y = Curs.y
Debug.Print "X = " & LastCurs.x & " Y = " & LastCurs.y
End Sub
Теперь вопросы:
1) Почему мне кажеться что это "кривой" способ? :)
2) Почему он возвращает не то что я думаю... слишком большие числа
3) Как по другому?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 21.11.05 17:47
1) Почему мне кажеться что это "кривой" способ?
Гы, прикольный вопрос, но здесь действительно существует погрешность при складывании X и Y.
2) неверно написано
3)
GetCursorPos Curs
'If (LastPoint.x = Curs.x) And (LastPoint.y = Curs.y) Then Exit Sub
LastCurs.x = LastCurs.x + [B]LastCurs.x - Curs.x)[/B]
LastCurs.y = LastCurs.y + [B]LastCurs.y - Curs.y)[/B]
'Это прибавляется НАСКОЛЬКО X и Y ИЗМЕНЯЛИСЬ
'LastPoint.x = Curs.x: LastPoint.y = Curs.y
Debug.Print "X = " & LastCurs.x & " Y = " & LastCurs.y 'Будет писаться сумма
End Sub
Номер ответа: 2
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #2
Добавлено: 21.11.05 17:48
Че за хрень? почему не работает жирный шрифт?!
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 21.11.05 17:49
oops... А теперь работает
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 21.11.05 17:52
А тепер видимо не будет:
[В]LoL[/В]
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 21.11.05 17:53
мда... теперь я понял, какой тут есть глюк )
Номер ответа: 6
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #6
Добавлено: 21.11.05 18:14
2 Noviks:
Внатуре есть.. а че заглюк-то хоть, если прописываешь сам, не работает.. или как?
Номер ответа: 7
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #7
Добавлено: 21.11.05 20:19
Есть такой вариант:
Private Sub Form_Load()
Dim MP As POINTAPI, PMP As POINTAPI, L As Double
Do
PMP = MP
GetCursorPos MP
L = L + Sqr(CDbl(MP.X - PMP.X) * CDbl(MP.X - PMP.X) + CDbl(MP.Y - PMP.Y) * CDbl(MP.Y - PMP.Y))
DoEvents
SleepEx 1, 0
Loop
End Sub
Переменная L и будет пробегом мыши.
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 21.11.05 20:47
2 Noviks
бред, ещё хуже чем у меня!
2 Страшный Сон
Спасибо, а если отдельно X and Y ?
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 21.11.05 21:03
сорри, за вопрос разобрался сам, ещё раз спасибо!
Номер ответа: 10
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #10
Добавлено: 22.11.05 14:55
Глюков нет. Просто внутри тега [code] все остальные теги игнрориуются.
И это правильно.
Номер ответа: 11
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #11
Добавлено: 22.11.05 17:08
Номер ответа: 12
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #12
Добавлено: 22.11.05 18:53
только я там в одном месте чуть-чуть не так сделал... но в остальном верно!!
Номер ответа: 13
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #13
Добавлено: 22.11.05 19:01
Кстати, извините, что в Офф-топ.
2 Noviks: при введении в действие новой версии сайта (предположительно
это будет не позднее чем через 4 месяца) все аккаунты с невалидными
E-mail'ами будут заблокированы.
Номер ответа: 14
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #14
Добавлено: 22.11.05 21:07
Кстати, извините, что в Офф-топ. (copy/paste
2 Павел, чё так долго??? Обещал к новому году!
Номер ответа: 15
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #15
Добавлено: 22.11.05 21:16
Мне тут еще иногда учиться приходится ПОэтому процесс, буучи бурным в конце лета, сейчас существенно замедлился.
Хотя сейчас намечается приток новых сил: UU наконец-то сумел поставить VS 2005, Алексей вернулся - вместо быстрее победим, но к НГ всяко не успеем. К реализации принимаются любые, даже смелые идеи, так что пока еще только вылизываем и улучшаем форум