Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 543

/ вопрос открыт /

Здраствуйте.
Я столкнулся с небольшой проблемкой, мне нужно чтобы в игре панель скилов реагировала на посылаемые мной нажатия клавиш. Я пробовал vk_event и SendInput, код был верен потомучто он работал в других приложениях и в чате самой игры, но панелька скилов не реагировала. Самое интересное, что на посылаемые клавиши программой MacroMaker, панелька реагировала. Подскажите, что можно еще попробовать испольовать. Если прийдётся с хуками то напиште какие надо использовать, ато я в них запутался.
Спасибо за внимание, не серчайте если не туда написал или вопрос некорректный.

Zeraim Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Zeraim (статус: Посетитель)
Вопрос отправлен: 2 мая 2008, 02:09
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 4 мая 2008, 17:15; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 2 мая 2008, 02:40 [#1]:

что за игра, что за панель?
Вполне возможно, что вы неверно выбрали хендл для посылки сообщения.
Галочка "подтверждения прочтения" - вселенское зло.
Zeraim

Zeraim (статус: Посетитель), 2 мая 2008, 14:36 [#2]:

Игра называется Holic Online, панелька скилов как и во всех онлайн играх внизу экрана, скилы активируются кнопочками 1 2 3 4 5 6 7 8 9 0 - = Хендл я находил через GetDC(0), FindWindow(nil,'Holic Online') и посылал всем окнам, но я недумаю что хендл определялся неправильно, ведь в чате игры кнопки котрые я посылыл писались. Может игра определяет нажатие клавиши через GetAsyncKeyState, но тогда поидее должен был сработать SendInput() если только я правильно понял как он работает.
Вадим К

Вадим К (статус: Академик), 2 мая 2008, 16:28 [#3]:

на сколько я помню, SendInput() сработает только если окно в фокусе.
Это игра в броузере?
Галочка "подтверждения прочтения" - вселенское зло.
Zeraim

Zeraim (статус: Посетитель), 2 мая 2008, 22:11 [#4]:

Нет, это игра со своим клиентом (ММОРПГ если так будет понятней), сенд инпут я ставил на таимер и проверял активизировав окно. Просто странно что игра реагирует только в чате. Тут возник вопрос, а что если Дельфи не расчитана на такие вещи, тоесть для взаимодействия с играми или другими приложениями больше подходит Си, или просто я неправильно чтото делаю.... Если вы не сталкивались с подобным вопросом то помогите мне насчёт хуков, я многа о них прочитал, вродебы понял принцип их работы, но запутался с параметрами процедур установки хуков, некоторые параметры имеют под пораметры которые тоже задаются, но неодного примера задания под пораметров я так и не нашол... И еще вопрос, в каком направлении стоит идти: Попробовать перехватить сообщение о нажатии клавиши в самом клиенте игры и попробовать потом его отсылать снова(насколько я понял такое возможно), или пробовать перехватывать и модифицировать искуственно созданое нажатие, чтобы игра принимала его за настоящие?
Вадим К

Вадим К (статус: Академик), 2 мая 2008, 22:40 [#5]:

Первое, делфи ничем не хуже си.
Во вторых, многие игры защищаются от подобного взаимодействия. Причём некоторые достаточно агресивно. Почему? так ведь это больно похоже на написание бота, а в пользовательских соглашениях к многим играм написание бота или чего то ботоподобного вне закона.
Советую вначале подумать, стоит ли оно того. Возмножно лучше отказаться от онлайн игр вообще.
Галочка "подтверждения прочтения" - вселенское зло.
Zeraim

Zeraim (статус: Посетитель), 3 мая 2008, 17:27 [#6]:

Ну это несовсем незаконно, если я поставлю данную вещь на поток и буду продовать то да, а если администрация игры замечает использование посторонних програм то банит аккаунт. А онлайн игры ето весело, можно бегать с народом в данжи или на гв. Но если приходится тратить 5+ часов на повышение своего левла, это становится просто тратой времени.... Потомуто я сел писать бота _) Спасибо вам за уделенное внимание данному вопросу, я нашол всетаки решение, буду совмесно с ботом использовать MacroMaker 8)
Вадим К

Вадим К (статус: Академик), 3 мая 2008, 19:26 [#7]:

Даже если не ставить на конвеер, это всё равно нарушение закона.
Бегать по 5 часов? - так в этом и идея - что бы просиживали за компом вместо того, что бы выйти на природу и понять, что жизнь прекрасна.
Галочка "подтверждения прочтения" - вселенское зло.
Zeraim

Zeraim (статус: Посетитель), 4 мая 2008, 02:48 [#8]:

Кстати в догонку этой темы, я понял почему неработает все что я пробовал, проверял я так: поставил таймер и там проигрывал бибикалку, когда сворачивал форму или делал разные с ней махинации, все работало, но стоило сфокусироватся на окне игры так сигнал исчезал. Чем это вызвано мне интересно =\\
Вадим К

Вадим К (статус: Академик), 4 мая 2008, 11:48 [#9]:

таймер работает на основе сообщения WM_TIMER, а если система загружена (а игра грузит нормально, причём если она в фокусе, то отбирает ещё больше ресурсов) и сообщения для таймера почти не доходят. Вот и всё. Игра - зло.
Галочка "подтверждения прочтения" - вселенское зло.
Zeraim

Zeraim (статус: Посетитель), 4 мая 2008, 17:15 [#10]:

угу игры зло, буду придумывать себе еще идею чтобы написать, ато скучно _)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:43
Выполнено за 0.02 сек.