Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 7

Эмуляция нажатий Медиа клавиш клавиатуры

23.05.2015, 17:31. Показов 2891. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Написал небольшое клиент серверное приложение на сокетах, в котором сервер принимает код действия и в идеале должен эмулировать нажатие медиа кнопок(Play, next, prev...).

Стандартными методами не получилось даже отловить код клавиш.
Так же не нашел констант для них.

Подскажите как это можно реализовать?

PS: Сейчас работает на эмуляции нажатий нескольких клавиш и все работает, но это немного не удобно... Потому что для нормальной работы на других ПК и вообще с другими приложениями, необходимо добавлять сочетания клавиш, которые зашиты на данный момент в код.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2015, 17:31
Ответы с готовыми решениями:

Блокировка нажатий клавиш на клавиатуре
Как с помощью средств awt и swing или иных средств java сделать так чтобы при нажатии всех клавиш на клавиатуре кроме букв и цифр, ничего...

Эмуляция нажатий клавиш клавиатуры
Посоветуйте, как можно реализовать управление программой (которая управляется с клавиатуры (например игра Quake)) из другой программы...

Эмуляция нажатий клавиш
У меня есть залогированы клавиши в блокноте в таком виде(много): Как мне заставить их из блокнота или из Мемо нажиматся в цикле? ...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
24.05.2015, 10:51
Действительно стандартных и расширенных кодов для них нет, НО зато есть rawcode и scancode которые можно из параметров нажатия вытащить. Я вот себе сделал чтоб отслеживать клавиши Плей, убавить-прибавить звук, калькулятор...Но у меня только одна клавиатура и не известно как все это будет работать на другой с другими дополнительными клавишами.
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 7
24.05.2015, 11:00  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Действительно стандартных и расширенных кодов для них нет, НО зато есть rawcode и scancode которые можно из параметров нажатия вытащить. Я вот себе сделал чтоб отслеживать клавиши Плей, убавить-прибавить звук, калькулятор...Но у меня только одна клавиатура и не известно как все это будет работать на другой с другими дополнительными клавишами.
Если не затруднит, приведи, пожалуйста, пример из твоего кода...
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
24.05.2015, 15:04
Лучший ответ Сообщение было отмечено Saliaz как решение

Решение

ну вот. За подход не ругайте, я не нашел ничего лучше чем выдергивать роукод из параметров нажатия. Если можно сканкод или роукод как то по другому брать -подскажите!
Java
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
public void keyReleased(KeyEvent e) {
        String s=e.paramString(); //тут система выводит полную информацию о нажатой клавише включая все коды
        String [] tok=s.split(","); //они там через запятую, нам нужен 6 параметр
        int u=tok[5].indexOf('='); // в 6 параметре описано "rawcode=179", потому вытаскиваем само значение
        String res=tok[5].substring(u+1); //теперь res равно 179 или другому коду
        System.out.println(res); //вывожу для проверки
        switch (res) {
            case "178":
                System.out.println("Stop"); //клавиша Стоп на моей клаве
                break;
            case "179":
                System.out.println("Play"); //клавиша Плей
                break;
            case "174":
                System.out.println("Volume-");
                break;
            case "175":
                System.out.println("Volume +");
                break;
            case "173":
                System.out.println("Mute");
                break;
            case "183":
                System.out.println("Calculator");
                break;
        }
 
 
    }
Saliaz, попробуй у себя запустить, мне интересно совпадают ли коды у разных клавиатур, например клавиша Плей
1
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 7
24.05.2015, 17:28  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
ну вот. За подход не ругайте, я не нашел ничего лучше чем выдергивать роукод из параметров нажатия. Если можно сканкод или роукод как то по другому брать -подскажите!

Saliaz, попробуй у себя запустить, мне интересно совпадают ли коды у разных клавиатур, например клавиша Плей
О_о ... Нужно читать больше теории...
Я и не задумывался, что так можно достать коды, да и вообще данные по нажатой клавише

Коды клавиш совпадают.

Осталась одна проблема, робот не понимает эти коды...

Как можно программно нажать клавишу, не используя робота?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
24.05.2015, 20:38
Цитата Сообщение от Saliaz Посмотреть сообщение
Коды клавиш совпадают.
Хорошо, спасибо
Цитата Сообщение от Saliaz Посмотреть сообщение
Как можно программно нажать клавишу, не используя робота?
где то я это встречал, надо искать
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 7
30.05.2015, 23:51  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
где то я это встречал, надо искать
А вот я что-то так и не нашел способа это сделать.
Пока что довольствуюсь тем, что есть -_-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2015, 23:51
Помогаю со студенческими работами здесь

KeyStuff или эмуляция нажатий клавиш
Программа для DOS. По сути программа должна выводить(вводить) в командной строке "1234567890QWERTYUIOP"+$13 ...

Память процесса, эмуляция нажатий клавиш
1. Дайте плиз кто-нибудь пример или исходник с использованием ReadProcessMemory и WriteProcessMemory , читал статьи всякие, постоянно...

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

Эмуляция нажатий клавиш (число или слово из переменной)
Привет всем! Есть база данных из которой в переменную выгружаем значения. Вопрос как заставить delphi 7 эмулировать набор этого значения...

Эмуляция нажатий клавиш или автоматический ввод информации
Добрый день. Мне необходимо чтобы в определенную форму ввелся пароль. Форма является изначально активной, то есть фокус находится на ней....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru