Вход

Просмотр полной версии : Мышь в Builder


IgrikX
10.05.2010, 13:12
Можно ли как в Билдере или Делфях сделать, что бы курсор мыши бегал по форме, кроме того, основным курсором я мог управлять. (Мышь на форме, должна не выходить за форму)????

JnK
10.05.2010, 13:32
Перемещать, можно: Получаешь позицию курсора, если он на форме, то начинаешь его передвигать программными средствами.

{Переместим курсор мыши}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
Тык (http://www.delphisources.ru/pages/faq/base/use_mouse_event_for_emulation.html)

Что бы курсор не выходил за рамки:
ClipCursor(Rect(10,10,100,100));

Но вот, что ты подразумевал под Основной курсор?
Если эмуляция, тогда вариант, прятать настоящий курсор мышки, и отображать картинку на форме :)

IgrikX
10.05.2010, 14:00
Тоесть, на форме бегает один курсор, а я за компом мог работать, и не мешать курсору, который бегает по форме..))

telega
10.05.2010, 14:40
я думаю это должно быть вида... прога берет картинку курсора и перемещает картинку, а курсор скрывает просто и все

slesh
10.05.2010, 16:14
Нефига у вас так не получится.
Курсор он и в африке курсор. И даже если ты 100 мышке подрубишь, всё равно они будут управлять одним единственным курсором.
Как я понял необходимо сделать чтото типа эмуляция работы пользователя в проге.
Тут всё зависит от того как прога устроена и каким образом она работает с мышей.
Если прога тупо ловит сообщения WM_MOUSEMOVE то можно просто напросто постоянно её окну посылать эти сообщения с указанием координат.
Если же прога определяет всё по коорднатам мыши, то тут врядли.

Хотя есть одно универсальное решение:
1) ищеш статейку о том как сделать из Win XP многопользовательский терминал сервер.
2) затем запускаешь вторую сессию (под другим юзверем можно) и там запускаешь прогу свою и эмулятор движения мышки.
3) переключаешься на свою сессию.

В этоге прога с эмулятором будут сами по себе, а ты сам по себе.
По тому что каждая сессия графическая имеет собственный курсор. итд итп

IgrikX
10.05.2010, 18:12
Нефига у вас так не получится.
Курсор он и в африке курсор. И даже если ты 100 мышке подрубишь, всё равно они будут управлять одним единственным курсором.
Как я понял необходимо сделать чтото типа эмуляция работы пользователя в проге.
Тут всё зависит от того как прога устроена и каким образом она работает с мышей.
Если прога тупо ловит сообщения WM_MOUSEMOVE то можно просто напросто постоянно её окну посылать эти сообщения с указанием координат.
Если же прога определяет всё по коорднатам мыши, то тут врядли.

Хотя есть одно универсальное решение:
1) ищеш статейку о том как сделать из Win XP многопользовательский терминал сервер.
2) затем запускаешь вторую сессию (под другим юзверем можно) и там запускаешь прогу свою и эмулятор движения мышки.
3) переключаешься на свою сессию.

В этоге прога с эмулятором будут сами по себе, а ты сам по себе.
По тому что каждая сессия графическая имеет собственный курсор. итд итп
ммм.. мб проще будет на Виртуальную машину поставить?? :D а то ты навговорил, у меня жопа на глаза вылезла..))