NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
День Рождения NOXWORLD! Официальная игра №154! 21.04.18 с 18-00 МСК!
Отключена авторизация на сервере и изменён IP! Подробности.


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Имитация нажатия клавиши в ноксе  (Прочитано 4491 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 907
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Кто подскажет горе программеру : как имитировать нажатие клавиши в ноксе? Среда программирования Delphi.
ИЛИ
Как имитировать нажатие клавиш в играх использующих для управления устройствами I/O Direct Input?


Dio: называйте темы информативно
« Последнее редактирование: 31/08/2010 20:17:11 от Dio »
Записан
Отец читеров

TheSim

  • Клан "NoX Craft"
  • Постоялец
  • *
  • Карма: 31
  • Оффлайн Оффлайн
  • Сообщений: 287
  • Awards Активным участникам сходок - 2013 За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Есть несколько путей:
1) можно имитировать событие виндоус
    либо через SetWindowsHookEx  + WH_JOURNALPLAYBACK
    либо через SendInput
  + работает в любом приложении без подготовки
      (про взаимодействие с прямымХ не знаю, но думаю что прокатит)
  + СендИнпут проще некуда
  - курсор мыши ты так сдвинешь для игры
  - Куда ты кликать будешь - вычисляй сам
  - Для хука надо писать дллку
   2) Перехватить активацию директинпут и вернуть собственный объект
       + По определению работает работает с прямымХ
       + При прямых руках можно встраиватся в любое директХ приложение
       + Можно фильтровать команды
       -  Координаты вычисляй сам
       -  Писать дллку, ремот трид
       - обертывать стандартный объект директинпута
   3) Найти и активировать в реакцию
       + Ты просто говоришь игрухе чего делать не затрагивая мышь и т.п.
       + При прямых руках дллку и инжекцию можно и не делать (но гемороя будет не меньше SuspendThread+GetThreadContext)
       - Надо знать где и чего активировать
   4) Использовать UniMod
       + Привязан только к ноксу
       + Геморой минимален
       - Его нужно установить
       - Не факт что там выведена нужная тебе кнопка, но наверняка
       - надо ботать луа, либо договариватся чтобы было апи для сторонних программ (хотябы WM_COPYDATA)
Записан
Расширенный поиск  
 

Страница сгенерирована за 0.038 секунд. Запросов: 19.