Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программное нажатие клавиш клавиатуры в игре!

56K
16 мая 2011 года
warhazar
7 / / 13.04.2010
Как в cs 1.6 эмулировать нажатие клавиш?
Ну скажем клавишу w (вперед) чтоб персонаж сам бежал!
SendMessage
postmessage
SendInput
keybd_event
Вообще работают, но не в игре (хотя в консольке работает)!
14
17 мая 2011 года
Phodopus
3.3K / / 19.06.2008
Вообще SendInput должен работать. Но если что искать в сторону DirectX Input.
56K
17 мая 2011 года
warhazar
7 / / 13.04.2010
INPUT inp[2];
memset(inp,0,sizeof(inp));

inp[0].type = INPUT_KEYBOARD;
inp[0].ki.wVk = 0;
inp[0].ki.wScan = 'a';
inp[0].ki.dwFlags = KEYEVENTF_SCANCODE;
inp[0].ki.time = 0;
inp[0].ki.dwExtraInfo = 0;

inp[1].type = INPUT_KEYBOARD;
inp[1].ki.wVk = 0;
inp[1].ki.wScan = 'a';
inp[1].ki.dwFlags = KEYEVENTF_KEYUP | KEYEVENTF_SCANCODE;
inp[1].ki.time = 0;
inp[1].ki.dwExtraInfo = 0;

//Посылаем имитацию нажатий в систему
SendInput(2,inp,sizeof(INPUT));

или
INPUT inp[2];
memset(inp,0,sizeof(inp));

//Нажимаем
inp[0].type=INPUT_KEYBOARD;
inp[0].ki.wVk=87;

// Отжимаем
inp[1].type=INPUT_KEYBOARD;
inp[1].ki.wVk=87;
inp[1].ki.dwFlags=KEYEVENTF_KEYUP;

//Посылаем имитацию нажатий в систему
SendInput(2,inp,sizeof(INPUT));

Может что не правильно?
14
18 мая 2011 года
Phodopus
3.3K / / 19.06.2008
Без игры это работает?
56K
18 мая 2011 года
warhazar
7 / / 13.04.2010
Да прекрасно работает, и в консольке кс тоже. Но не движение персонажа!
В принципе keybd_event и postmessage работают также (винда и консоль).
277
18 мая 2011 года
arrjj
1.7K / / 26.01.2011
Первое моё мнение: Послав два месежа подряд (keydown,keyup) ты можешь даже и не заметить что персонаж в игре передвинулся (проверяй на переключении оружия например (1,2,3,...,q...) или открытия консоли ), второе: cs может использовать не обработку оконных сообщений а DirectInput например (что вероятнее всего) погугли много народу пытается обмануть игрушки:)
Попробуй использовать уже готовую программу вот из её описания:
Цитата:

Why do Hotstrings, Send, and Click have no effect in certain games?

Some games use DirectInput exclusively. As a side-effect, they might ignore all simulated keystrokes and mouse clicks. To work around this, try one of the following (or a combination):

* Use SendPlay via: 1) the SendPlay command; 2) using SendMode Play; and/or 3) the hotstring option SP.
* Increase SetKeyDelay. For example:
SetKeyDelay, 0, 50
SetKeyDelay, 0, 50, Play
* Try ControlSend, which might work in cases where the other Send modes fail.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог