![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| BUGOR |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 1 Всего: 16 |
Нужно перехватить нажатие левой кнопки мыши и до её отпускания каждые n секунд эмулировать её нажатие.
Всё это я сделал, работает. Но суть в том, что надо эмулировать нажатие в приложении которое работает на DirectX, т.е. в полноэкранной игре и тут все стандартные методы не работают(а может я не все знаю), делал двумя способами:
и так:
Всё это работает на какои-нибудь оконном приложении или непосредственно в среде винды, но никак не хочет работать, если запущена игра(Mafia например). Так вот собственно вопрос, какие методы эмуляции нажатия кнопок мыши существуют? Неважно на каком языке/языке программирования будет информация, буду благодарен за любую помощь. |
||||
|
|||||
| 0x07L |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: 4 Всего: 5 |
Есть еще SendInput. Попробуй.
|
|||
|
||||
| BUGOR |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 1 Всего: 16 |
http://msdn.microsoft.com/library/default....tures/input.asp
Цитата:
Что подтверилось при дизассемблировании mouse_event:
А коли mouse_event практически напрямую юзает SendInput, значит и SendInput работать не будет |
||||
|
|||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
DirectX с клавиатурой и мышой работает не через стандартный I/O, там специальные интнрфейсы, ищи описание IDirectInput
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 1 Всего: 16 |
Да я это понимаю... Легко сказать ищи человеку, который с DirectX и не работал ниразу, может пнёте меня в нужном направлении?
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Здесь работа идет напрямую с драйвером, который, на сколько мне известно, не эмулирует нажатия клавиш, эмуляцией занимается винда. Поэтому, ничего, кроме как "ищи", посоветовать не могу. Есть шанс, что существуют недокументированные возможности драйвера мыши, но это очень слабая надежда. Тем более, если д-икс приложение запросит эксклюзивный доступ к устройству ввода, то получить еще один, параллельный доступ будет крайне сложно.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| fer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.9.2006 Репутация: нет Всего: нет |
==========-=-=-=
Это сообщение отредактировал(а) fer - 17.9.2006, 11:14 |
|||
|
||||
| Kirill89 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 17.10.2006 Где: Питер Репутация: нет Всего: 4 |
Скорее всего, дело не в том, что нажатия мышки не эмулируются, дело в том, что твоя прога не ловит нажатие мышки. Попробуй привязать курсор не к HWND, а к rect. Или просто поробуй проверить, будет ли она "кликать" постоянно, тоесть пусть она нажимается в какой-нибудь координате постоянно, будет ли это работать в игре??
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |