Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.10.2018
Сообщений: 34

Глобальная эмуляция нажатия клавишь клавиатуры

08.01.2019, 22:50. Показов 1664. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В кратцe:
Мне нежно что бы программа думала что я нажимаю кнопки на клавиатуре.
sendinput - не работает
keybd_event - не работает

Описание задачи подробнее:
Я хочу написать консольное приложение которое будет по определенному циклу жать кнопки в игре.
Игра будет открыта на экране (не свернута), я хочу что бы я смог отойти от компьютера а кнопки жались сами.
Я пробовал написать код при помощи выше перечисленных способов, но игра просто игнорирует все мои попытки. Я полагаю там какая-то защита стоит или она считывает клавиши на уровне драйвера.
Я нашел 3 способа. 2 я привел выше и еще 1 при помощи SerialPort, но я пользуюсь ноутом и у меня нет ком порта.

Подскажите что еще можно попробовать и возможно ли это сделать вообще. Буду бесконечно благодарен тому кто поможет.

Вот примеры моего кода, мб я где-то ошибку допустил и дело в том что у меня руки не из того места растут, а не в том, что это просто не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#define WINVER 0x0500
#include <windows.h>
 
int main()
{
    // This structure will be used to create the keyboard
    // input event.
    INPUT ip;
 
    // Pause for 5 seconds.
    // Set up a generic keyboard event.
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;
 
    while (true) {
        // Press the "Z" key
        ip.ki.wVk = 0x5A; // virtual-key code for the "a" key
        ip.ki.dwFlags = 0; // 0 for key press
        SendInput(1, &ip, sizeof(INPUT));
 
        Sleep(150);
    
        // Release the "A" key
        ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
        SendInput(1, &ip, sizeof(INPUT));
 
        Sleep(150);
    }
    // Exit normally
    return 0;
}
C++
1
2
3
4
5
6
keybd_event('X', 0, 0, 0);
Sleep(press_intervale);
final_pause += press_intervale;
keybd_event('X', 0, KEYEVENTF_KEYUP, 0);
calldown[1] = fire_x;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2019, 22:50
Ответы с готовыми решениями:

Эмуляция нажатия клавиши клавиатуры в чужом приложении
Добрый день. Вот, для примера, нажать F1 в &quot;Калькуляторе&quot;, пишу: HWND Wnd=FindWindow(NULL,L&quot;Калькулятор Плюс&quot;); ...

Эмуляция нажатия клавиатуры в ДР окне зная его хендл, помоги разобраться
вообщем есть окно состоит оно из поля ввода и двух кнопок... как сделать так чтобы можно было ввести текст в это поле для ввода из моей...

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

1
3 / 3 / 0
Регистрация: 01.05.2012
Сообщений: 18
18.12.2019, 21:43
Решил проблему? Тоже застопорился на этом шаге, срабатывает нажатие и отпускание клавиши, но по идее должно же быть отпускание только после отправки KEYEVENTF_KEYUP. Почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2019, 21:43
Помогаю со студенческими работами здесь

Эмуляция нажатия клавиши
Всем доброго времени суток. Кто может подсказать как сэмулировать нажатие клавиши программно? Именно для моей формы, т.е. нажимаем мушкой...

Эмуляция нажатия клавиши клавиатуры
Здравствуйте! Возникла задача написания сервиса Windows, который, в том числе, посылает код виртуально нажимаемой кнопки приложениям,...

Эмуляция нажатия клавиши
Подскажите как отправить окну сообщение, что нужно нажать клавишу Enter? Точнее напишите функцию SendMessage с параметрами для клавиши...

Эмуляция нажатия клавиши
Подскажите плс как емулировать нажатие клавиши в неактивном окне?

Эмуляция нажатия в игре
Я столкнулся с проблемой Есть очень хорошая функция keybd_event() (виртуально нажимает кнопку), но игры с DirectX, судя по всему,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru