|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
Эмулирование нажатий клавиш25.07.2010, 19:54. Показов 6904. Ответов 21
Метки нет (Все метки)
Добрый вечер! Есть задача - сэмулировать нажатие определенной клавиши.
Короче, есть игра, где по нажатию на клавишу "+" на панели с цыфрами (что справа) происходит определенное действие, тоже самое и с клавишой "-", причем изменить из никак нельзя, нажатие на основной клавиатуре (сверху букв з, х, ъ)не дает результатов.А сам я иногда играю на ноуте. Вобщем задача отловить нажатие определенной клавиши и сэмулировать нажатие других клавиш (все должно делаться в фоне)
0
|
|
| 25.07.2010, 19:54 | |
|
Ответы с готовыми решениями:
21
Считывание нажатий клавиш
|
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 25.07.2010, 20:20 | |
|
WinApi, либо можете поискать уже готовые варианты. Наверняка кто-то делал уже.
0
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
| 25.07.2010, 22:21 [ТС] | |
|
0
|
|
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 25.07.2010, 22:28 | |
|
Ну насколько попдробней, в одном посте что надо сделать не уместиться. Знакомы с программой PuntoSwitcher? Знаете как она работает? Перехватывает нажатия клавиш, проверяет их, и если нужно, то генерирует последовательность, которая исправляет нажатия клавиш в неправильной раскладке(имхо). Следовательно вам нужен упрощенный аналог, перехватывающий системные нажатия клавиш, и подменяющий их на нужные вам. Настолько подробно подойдет?
0
|
|
|
CEO
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
|
|
| 25.07.2010, 22:37 | |
|
shalad, к описанному
Johny_D, добавлю только что если нет доступа к исходникам игры (тоесть код не ваш - а скорее всего так и есть) то нужно будет отсылать нужные комбинации целевой программе (смотрим в сторону SendMessage). Кстати перехват можно сделать с помощью хуков
0
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
| 26.07.2010, 00:58 [ТС] | |
|
Johny_D, да, с Punto Switcher знаком, но что толку от нее, если нет исходников к ней?
Alligieri, да, игра не моя, вот как раз и нужно узнать что такое хуки и что с этим едят
0
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 26.07.2010, 01:20 | |
|
Не шарп конечно, но здесь есть интересующая инфа:
http://www.autoitscript.com/fo... howforum=2 или http://www.autohotkey.com/ - сам когда-то делал hook'и на AutoHotkey'e (на выходе экзешник получается(если не знаком с этим))
0
|
|
|
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
|
||||||
| 26.07.2010, 01:28 | ||||||
|
А если попробовать использовать встроенную функцию SendKeys
Например: { if (e.KeyChar == 13) { SendKeys.Send("{tab}"); } } вот пример работы с Winampом:
0
|
||||||
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 26.07.2010, 09:22 | |
|
Fedogor, а ловить нажатия клавиш как?
0
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
| 26.07.2010, 12:33 [ТС] | |
|
Johny_D, Теоретически, ловить можно с помощью события OnKeyPress или чего-то подобное (точно не помню) Хотя наверно это события произойдет только если форма приложения активна
0
|
|
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
|
|
| 26.07.2010, 13:01 | |
|
0
|
|
|
210 / 96 / 6
Регистрация: 23.07.2010
Сообщений: 235
|
||||||
| 26.07.2010, 16:32 | ||||||
|
Вот небольшой пример по отлову, но он на С++:
1
|
||||||
| 26.07.2010, 18:05 | |
|
ловить хуки можно с помощью класса UserActivityHook.cs который не сложно найти в интернете, а эмулировать нажатия мышки либо клавиатуры в приложение очень удобно с помощью библиотеки AutoItX3.dll
обо всём этом уже писалось на форуме документацию по вышеперечисленному легко найти в интернете. вопросы=)
0
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
||
| 26.07.2010, 18:35 [ТС] | ||
|
В инете ничего не нашел по поводу использования UserActivityHook на C#, может объясните? По поводу AutoIt - знаком с этой библиотекой, приходилось ее использовать
0
|
||
| 26.07.2010, 20:00 | |
|
0
|
|
| 26.07.2010, 21:43 | |
|
там в Debug'e лежит прога в которой все хуки включены. посмотри.
и когда подключишь себе в прогу этот класс, в свойствах проекта разреши "отладку небезопасного кода" если не ошибаюсь, а то при компиляции будет выкидывать пустую ошибку постоянно.
1
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|||||||||||
| 27.07.2010, 17:39 [ТС] | |||||||||||
|
EatingPeopleIsFun, Спасибо, я посмотрю завтра (я с ноута, там не установлена студия)
а пока + Добавлено через 16 часов 48 минут Посмотрел твой пример, все понял, кроме этого: Как можно сделать условие типа
Добавлено через 2 часа 1 минуту разобрался, просто пишешь типа:
Кстати вроде на это форуме не нашел раздел AutoIt, тогда либо отправте меня по вдресу либо помогите плиз как можно эмулировать нажатия с правой ппанели
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 27.07.2010
Сообщений: 6
|
|
| 27.07.2010, 18:09 | |
|
Посмотри здесь, похожий вопрос
http://forum.codenet.ru/showthread.php?t=37974
0
|
|
|
7 / 7 / 2
Регистрация: 17.05.2010
Сообщений: 122
|
|
| 27.07.2010, 19:15 [ТС] | |
|
Nupa, Я там уже был, но ничего для себя не нашел
Сейчас мне нужно узнать как эмулировать ввод с цифровой панели (AutoIt наверно) Добавлено через 37 минут Все! Нашел! Нужно написать Send({NUMPADADD}); для "+" и Send("{NUMPADSUB}"); для "-" (AutoIt)
0
|
|
| 28.07.2010, 08:03 | |
|
сам со всем справился)
0
|
|
| 28.07.2010, 08:03 | |
|
Помогаю со студенческими работами здесь
20
Отправка нажатий клавиш в окно стороннего приложения
создание сниффера нажатий клавиш и кликов мыши вне формы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|