|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Движение курсора под углом
Доброго времени суток. Есть вопрос, допустим есть угол 20°, нужно чтоб под таким же углом двигался курсор.
|
#2
|
||||
|
||||
Под углом 20 градусов к чему? К плоскости монитора?
А если серьёзно - простейшая геометрическая задачка на синусы и косинусы. Зная гипотенузу и угол, посчитать катеты (x и y) и прибавить к текущим координатам эти самые x и y. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Ага, ну с движением через setcursorpos получается, а вот через mouse_event курсор улетает в небытие. Если пробовать так
Код:
Pt := ClientToScreen(Pt); Pt.x := Round(Pt.x * (65535 / Screen.Width)); Pt.y := Round(Pt.y * (65535 / Screen.Height)); Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, pt.x, pt.y, 0, 0); Код:
Mouse_Event(MOUSEEVENTF_MOVE, pt.x, pt.y, 0, 0); |
#4
|
||||
|
||||
Че-то я вообще не понял. Допустим, у нас ширина экрана -1280 пикселей. Курсор в точке 100 по X. Новая точка получается 5120, что мягко говоря далеко за экраном. Или же я не понимаю, что это за Pt изначально.
В чем смысл этого кода? Если надо просто двигать, то надо получить текущую позицию, прибавить к ней нужное значение и установить. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
Цитата:
Цитата:
Код:
Mouse_Event(MOUSEEVENTF_MOVE, pt.x, pt.y, 0, 0); |
#6
|
||||
|
||||
Тогда передвигай на небольшие значения, а не на тысячу пикселей за раз. Откуда взялось * (65536/Screen.Width)?
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
Цитата:
|
#8
|
||||
|
||||
Хм, не знал, что моусэвент принимает нормализованные координаты.
Как инициализируется точка Pt? Да, кстати. Можно использовать SendInput, она более вменяемая в этом плане: Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
||||
|
||||
Pt точку я взял из примера с mouse_event, в исходнике она у меня не пременяется. Если что-то не понятно вот исходник.
Последний раз редактировалось Klyaksa, 22.11.2012 в 00:10. |