Здравствуйте! Какой самый быстрый способ отправить нажатие клавиши мыши в определенное окно? Пишу простенькую программу-кликер для одной игры. Для работы в свёрнутом режиме, а так же для защиты от случайных нажатий, необходимо нажимать клавиши мыши в определенном окне. На данный момент я использую функцию PostMessageW и она неплохо с этим справляется, но мне всё таки интересно, есть ли ещё какие-то способы из user-mode донести информацию о нажатии клавиши мыши до игры. Может быть, есть какие-то более хитрые методы, позволяющие ускорить обработку нажатий или хотя бы слегка замаскировать то, что это нажатие было отправлено программно. Типа, может можно вызвать оконную процедуру как-то напрямую или сразу в цикл процедуры засунуть это сообщение. О функциях SendInput и mouse_event слышал, это не то что нужно. В общем, буду рад ознакомиться с любыми другими способами отправки нажатий. Благодарю за внимание!
Привет alex_dz. Ты прав, это довольно хорошая программа и я ею уже пользовался. Речь немного про другое, вдруг есть ещё какие-то способы донести до окна игры событие о нажатии мыши. Спасибо за ответ!
да вряд ли что-то еще есть МС давно уже все пособирала и рассказала https://learn.microsoft.com/en-us/windows/win32/inputdev/mouse-input
alex_dz, когда человек нажимает на настоящую, физическую мышь, в конечном итоге, какой функцией посылается информация в окно? Post/SendMessage? Или там у драйвера свои функции для отправки сообщений в цикл сообщений?
видел в видосе у какого-то буржуя, который делал аим бот для валоранта с помощью компьютерного зрения и нейронки, так вот он покуапл ардуино, чтобы написать свой драйвер на него и использовать как физическую мышь, а по факту этот драйвер делал инпут по каким-то условиям, скорее всего там дайрект инпут в винду, а не в процесс, а ваще выглядит как самая леджитная версия от анти читов, смотря какую ты игру еще рассматриваешь, в вове например и Post и Send блочатся варденом, хз как ща обходят сурс на видик: клик
mantissa, спасибо за информацию, но, к сожалению, я хотел бы бесплатно поделиться этой разработкой с другими, нужно чтобы работало у всех. Далеко не каждый будет покупать для этого ардуино. Мне вот интересно, ОС получила информацию о том, что, к примеру, была нажата левая клавиша мыши. Какими API она доставляет эту информацию до нужного окна? Типа, понятно что там вычисляется в какое окно было попадание и так далее, я имею ввиду саму функцию отправки события, когда система уже поняла какое конкретно окно ей нужно.
Так или иначе, в любой проге под виндой есть цикл чтения сообдений (из ОС) типа тогда вопрос надо ставить так - каким образом шлют сообщения в очередь, из которой вычитывает GetMessage (или PeekMessage)
alex_dz, что будет если вместо PostMessage вызвать сразу DispatchMessage со своей структурой? Есть ли какой-то способ сразу передать сообщение в процедуру окна, минуя всякие хуки? И что будет если вызвать оконную процедуру напрямую?