Нажатие мыши в определённом окне

Тема в разделе "WASM.BEGINNERS", создана пользователем rxznve, 28 фев 2023.

Метки:
  1. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    Здравствуйте!

    Какой самый быстрый способ отправить нажатие клавиши мыши в определенное окно?

    Пишу простенькую программу-кликер для одной игры. Для работы в свёрнутом режиме, а так же для защиты от случайных нажатий, необходимо нажимать клавиши мыши в определенном окне. На данный момент я использую функцию PostMessageW и она неплохо с этим справляется, но мне всё таки интересно, есть ли ещё какие-то способы из user-mode донести информацию о нажатии клавиши мыши до игры. Может быть, есть какие-то более хитрые методы, позволяющие ускорить обработку нажатий или хотя бы слегка замаскировать то, что это нажатие было отправлено программно. Типа, может можно вызвать оконную процедуру как-то напрямую или сразу в цикл процедуры засунуть это сообщение.

    О функциях SendInput и mouse_event слышал, это не то что нужно.

    В общем, буду рад ознакомиться с любыми другими способами отправки нажатий.

    Благодарю за внимание!
     
    Последнее редактирование: 28 фев 2023
  2. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    530
    чтоб максимально маскироваться под живую мишь - я запускаю утиль
    upload_2023-2-28_7-11-41.png

    и потом мимикрирую в кодесе...
     
    rxznve нравится это.
  3. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    Привет alex_dz.

    Ты прав, это довольно хорошая программа и я ею уже пользовался. Речь немного про другое, вдруг есть ещё какие-то способы донести до окна игры событие о нажатии мыши.

    Спасибо за ответ!
     
  4. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    530
    rxznve нравится это.
  5. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    alex_dz, когда человек нажимает на настоящую, физическую мышь, в конечном итоге, какой функцией посылается информация в окно? Post/SendMessage? Или там у драйвера свои функции для отправки сообщений в цикл сообщений?
     
  6. mantissa

    mantissa Мембер Команда форума

    Публикаций:
    0
    Регистрация:
    9 сен 2022
    Сообщения:
    170
    видел в видосе у какого-то буржуя, который делал аим бот для валоранта с помощью компьютерного зрения и нейронки, так вот он покуапл ардуино, чтобы написать свой драйвер на него и использовать как физическую мышь, а по факту этот драйвер делал инпут по каким-то условиям, скорее всего там дайрект инпут в винду, а не в процесс, а ваще выглядит как самая леджитная версия от анти читов, смотря какую ты игру еще рассматриваешь, в вове например и Post и Send блочатся варденом, хз как ща обходят
    сурс на видик: клик
     
    rxznve нравится это.
  7. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    mantissa, спасибо за информацию, но, к сожалению, я хотел бы бесплатно поделиться этой разработкой с другими, нужно чтобы работало у всех. Далеко не каждый будет покупать для этого ардуино.

    Мне вот интересно, ОС получила информацию о том, что, к примеру, была нажата левая клавиша мыши. Какими API она доставляет эту информацию до нужного окна? Типа, понятно что там вычисляется в какое окно было попадание и так далее, я имею ввиду саму функцию отправки события, когда система уже поняла какое конкретно окно ей нужно.
     
  8. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    530
    Так или иначе, в любой проге под виндой есть цикл чтения сообдений (из ОС)
    типа

    upload_2023-2-28_17-16-31.png

    тогда вопрос надо ставить так - каким образом шлют сообщения в очередь, из которой вычитывает GetMessage (или PeekMessage)
     
    rxznve нравится это.
  9. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    alex_dz, что будет если вместо PostMessage вызвать сразу DispatchMessage со своей структурой? Есть ли какой-то способ сразу передать сообщение в процедуру окна, минуя всякие хуки? И что будет если вызвать оконную процедуру напрямую?
     
  10. rxznve

    rxznve New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2023
    Сообщения:
    14
    Жаль, что на этом замечательном форуме, так мало активности :с