|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
полная эмуляция нажатия клавиши
Как эмулировать нажатие клавиши L на весь компьютер?
Эмуляция клавиши должна быть глобальной, так как её должна розпознавать другая программа, в то время как моя будет неактивной. И нужен такой способ чтобы не по Хенделу окна, так как программа почему то это блокирует... . Буду очень благодарен |
#2
|
||||
|
||||
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
keybd_event не работает как нужно. Я пробовал уже. Он работает но частично.
Последний раз редактировалось nikkilla, 08.03.2012 в 17:22. |
#4
|
||||
|
||||
Описанной задаче соответствует на 100%. Тогда подробнее опиши задачу. Что, куда и зачем нужно отправить и что должно произойти.
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
прошу прощение за неполную инфу.
Я пишу программу для игры CS 1.6 Она должна: Отловить ЛМБ (Я это уже сделал) И пока ЛМБ зажата много раз просимулировать нажатие клавиши L в промежутке 500 мс. У меня при зажатии вне игры всё работает, а вот в игре нажатие ЛМБ отлавнивает, а симулировать не хочет. Прошу помоч. Я нашел способ обойти все существующие античиты, но не все так легко. |
#6
|
|||
|
|||
Короче нужно сделать так чтобы игра думала что клавишу нажали на клавиатуре.
|
#7
|
||||
|
||||
Странно. Keybd_event симулирует нажатие кнопки, передавая ее на цепочку обработчиков. На MSDN пишут, что драйвер клавиатуры использует именно эту функцию для отправки сообщения о нажатии системе. SendMessage(WM_KEYDOWN) к Handle'у передает сообщение сразу окну, поэтому тоже должно работать. Каким образом используется в коде keybd_event и sendmessage (возможно ошибка в параметрах)?
Других способов симуляции я не знаю. Можно попробовать SendInput, но врятли поможет. jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
|||
|
|||
а симулировать нажатие кнопок мыши работает?
|
#9
|
|||
|
|||
Посади за комп китайца пускай набирает, я думаю для тебя это будет самый верный вариант.
|
#10
|
|||
|
|||
keybd_event(Ord('L'), 0, 0, 0);
keybd_event(Ord('L'), 0, KEYEVENTF_KEYUP, 0); Возможно ошибка в параметрах. Брал из FAQ этого сайта. |
#11
|
||||
|
||||
Хм. Вроде все нормально. Попробуй между ними сделать Sleep(1000), чтобы имитировать задержку в секунду перед отпусканием. Возможно, CS не обращает внимания на сообщения и просто сама N раз в секунду проверяет состояние интересующих её клавиш...
Ну и на всякий случай скажу, фокус ввода должен быть на окне CS, т.к. если она не игнорирует сообщения, то это важно. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 10.03.2012 в 15:43. |
#12
|
|||
|
|||
смотри вариант: в игре меняешь бинд со своей клавиши на кнопку мыши, и в дельфи эмулируешь нажатие этой кнопки мыши
|
#13
|
|||
|
|||
Если бы были на мышке свободные кнопки давно бы забиндил.
ЛМБ - +attack ПКМ - Аим СКМ - +attack2 L - +attack Смысл в том, что при нажатии лмб происходит не один а несколько выстрелов, что повышает шанс попадания. |
#14
|
|||
|
|||
можно прописать, чтобы при нажатии левой – менялся бинд правой кнопки, а при отпускании – менялся обратно
//что повышает шанс попадания насколько повышает? что-то не верится |
#15
|
|||
|
|||
если стрелять одиночними, то повышается, и на много..... .
Короче нужно сделать всё програмно |