|
|
|
Определение формы курсора.Решено, Можно ли определить форму курсора в игре |
|
|
Мишаня через тире |
13.1.2020, 16:18
|
Registred
Сообщений: 5
Регистрация: 13.1.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.504
|
Здравствуйте. Хочу написать бота для игры Атлантика онлайн. Игра самая обычная - бегаешь по локациям, наводишь курсор на моба, нападаешь. Курсор при наведении на моба меняет форму, это могло бы весьма[i] упростить процесс выцепления мобов из окружающей среды, но. Скриншоты делаемые уопилотом курсор не показывают в принципе. В связи с этим 2 вопроса. 1) Возможно ли как-то опционально таки получить курсор на скрине, для дальнейшей обработки. Если нет, то... 2) Как я понимаю, с точки зрения windows курсор такое же окно как и все остальные. Является ли оно дочерним по отношению к какому-либо окну, можно ли получить информацию о нем из списков дочерних окон?
Спасибо за помощь заранее. Если нужна какаянть информация дополнительная, предоставлю.
зы. собсно форма не важна, очевидно. Мне нужно отловить один единственный пиксель на курсоре, для реализации.
Вопрос решен. Изображение текущего курсора элегантно и просто выдирается из ресурсов самой игры. Реализация на С, если кому интересно: CURSORINFO ci; ICONINFO ii;
ci.cbSize= sizeof(CURSORINFO); if(!GetCursorInfo(&ci)) MessageBox(NULL, "GetCursorInfo", "Oops", MB_ICONERROR); hCursor= ci.hCursor;
ii.fIcon= FALSE; if(!GetIconInfo (hCursor, &ii)) MessageBox(NULL, "GetIconInfo", "Oops", MB_ICONERROR); hBitmap= ii.hbmColor;
Осталось одно маленькое неудобство, в том, что данная реализация не работает, если окно игры активно. Сорри, но дальше возиться неохота, проще выводить его в пассив, через несколько секунд после клика. Всем спасибо, удачной охоты ).
|
|
|
|
Мишаня через тире |
14.1.2020, 0:03
|
Registred
Сообщений: 5
Регистрация: 13.1.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.504
|
Цитата(Fors1k @ 13.1.2020, 18:20) Подключись тимвивером к компу, поставь галочку "отображать курсор клиента", сделай скрин. Если пилот не может видеть курсор, то как он поймет что на нем изменился пиксель?)
Так вопрос собственно в этом и состоит. Каким образом из пилота можно поймать изменение формы и цвета курсора. Ну или его части ). Смысл делать скрин сторонним по нету, так-то я его и в пайнте нарисовать могу. Мне надо сделать так чтобы это можно было определить из скрипта.
|
|
|
|
cirus |
14.1.2020, 5:20
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
|
|
|
|
Мишаня через тире |
14.1.2020, 6:38
|
Registred
Сообщений: 5
Регистрация: 13.1.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.504
|
Цитата(cirus @ 14.1.2020, 5:20) Чорт, говорила же мне мама в детстве, - учись Мишаня через тире юзать поиск. А я не слушался. Огромное спасибо. Тема закрыта.
|
|
|
|
Мишаня через тире |
15.1.2020, 13:34
|
Registred
Сообщений: 5
Регистрация: 13.1.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.504
|
Цитата(Мишаня через тире @ 14.1.2020, 6:38) Чорт, говорила же мне мама в детстве, - учись Мишаня через тире юзать поиск. А я не слушался. Огромное спасибо. Тема закрыта.
Увы . С удивлением увидел на скрине стандартный виндовый курсор мыши. Плюнул на все, вспомил молодость и пошел писать свой скринер. И вот тут-то в процессе и выяснилось, что сия программа дорисовывает на скрин текущий стандартный курсор винды. Ибо средствами winapi получить изображение курсора невозможно, так как он вне всех контекстов, в том числе и дисплея. Итого. Как из пилота получить доступ к видеобуферу? Можно даже на ассемблере ).
|
|
|
|
Мишаня через тире |
15.1.2020, 14:41
|
Registred
Сообщений: 5
Регистрация: 13.1.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.504
|
Цитата(DarkMaster @ 15.1.2020, 14:14) А можно где-то почитать? а то мельком пробовал искать и не нашел интересующей инфы. В частности очень интересно каким образом он отрисовывается в рамках использования данного метода для других целей.
Информация взята отсюда https://www.codeproject.com/Articles/12850/...he-Mouse-Cursor. Конечно, это не msdn, но учитывая, что ни один контекст устройств изображения курсора не видит, это весьма похоже на правду. Более детальную информацию, учитывая мои 3 слова на англ., я в ингнете не нашел, может у Вас получится ) зы А чем плох видеобуфер? Насколько я еще помню ассемблер, просто массив точек в памяти. Если погуглить можно даже абсолютный адрес найти. Ну, я так думаю ) зы 2 Мне тут на одном форуме вешают, что можно из дескриптора курсора получить ид ресурса, со всеми вытекающими. Хоть убей не помню такого, и найти не могу. Может подскажет кто?
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|