Список клавиш и кнопок мыши -Autohotkey
Следующие названия клавиш используются, когда Numlock выключен:
NumpadClear — та же кнопка, что и Numpad5 на клавиатуре
Эти названия клавиш используются при включенном Numlock’e:
С F1 по F24 — двенадцать или более функциональных клавиш, на большинстве клавиатур представлены в самом верхнем ряду.
AppsKey — клавиша, вызывающая контекстное меню файла/программы, как при правом клике мышкой.
LWin — левая клавиша «Windows»
RWin — правая клавиша «Windows»
Control (или Ctrl)
LControl (или LCtrl) — левый «Сontrol»
RControl (или RCtrl) — правый «Сontrol»
LAlt — левый «Alt»
RAlt — правый «Alt». Примечание: если на вашей клавиатуре вместо клавиши RAlt сделана клавиша AltGr, вы можете использовать следующую запись данной клавиши: ! Также заметим, что клавишу AltGr можно записать как сочетание клавиш «LControl & RAlt::».
Help — довольно редкая клавиша, присутствует далеко не на всех клавиатурах. И работает совсем не как F1.
Sleep — предупреждаем, что клавиша «Sleep» на некоторых клавиатурах не работает под этой записью.
Клавиши расширенных функций Мультимедийных и Интернет-клавиатур:
Запись вида SCnnn, где nnn — это сканкод клавиши, позволяет нам работать с остальными клавишами, не упоминавшимися выше. Подробнее об этом — см. ниже.
Возможна запись VKnn, где nn является шестнадцатиричным виртуальным кодом клавиши. Несмотря на то, что этот редко используемый метод поддерживается всеми версиями программы, только с версии 1.0.38.02 и выше для некоторых типов горячих клавиш реализовано предотвращение отслеживания их функцией «keyboard hook» (обработчик клавиатурных прерываний). Например, следующая комбинация клавиш не использует обработчик клавиатурных прерываний (keyboard hook), и как следствие может быть запущена нажатием как клавиши Home, так и NumpadHome:
^VK24::MsgBox Вы нажали Home или NumpadHome`, удерживая клавишу Control.
Джойстик
Joy1 — Joy32: кнопки джойстика. Для удобства определения номеров кнопок вашего джойстика был создан специальный тест-скрипт (см. ссылку в оригинале статьи). Обратите внимание, что такие префиксы, как ^ (control) и + (shift) здесь не поддерживаются (тем не менее, команда GetKeyState может использоваться). Также обратите внимание, что нажатия клавиш джойстика всегда обращены напрямую в активное окно, поддерживающее приём таких сигналов.
Несмотря на то, что следующие управляющие элементы джойстика не могут использоваться как горячие клавиши, их можно использовать при помощи команды GetKeyState:
JoyX, JoyY, и JoyZ: где X (горизонтальная), Y (вертикальная), и Z (высота/глубина) — оси координат джойстика.
JoyR: руль джойстика или 4-ая ось джойстика.
JoyU и JoyV: 5-ая и 6-ая оси джойстика.
JoyPOV: the point-of-view (hat) control (POV control, «шляпка» или «переключатель видов»; например, вид глазами игрока).
JoyName: название джойстика.
JoyButtons: количество кнопок, поддерживаемых джойстиком (не всегда точное).
JoyAxes: количество направлений, поддерживаемых джойстиком.
JoyInfo: генерирует строку, состоящую из нуля или более знаков, иллюстрирующих возможности джойстика: Z (имеется Z направление), R (имеется R направление), U (имеется U направление), V (имеется V направление), P (имеется POV control), D (POV control имеет ограниченное количество дискретных/промежуточных настроек), C (POV control передает непрерывные/точные данные). Пример строки: ZRUVPD.
Несколько джойстиков: если вы используете несколько джойстиков одновременно, то для более точной адресации команды используйте при записи номер джойстика перед именем клавиши джойстика. Например запись 2joy1 будет обозначать первую кнопку второго джойстика.
Примечание: если у вас возникли проблемы с определением скриптами вашего джойстика, вы можете попробовать изменить номер джойстика с 1 на что-нибудь другое, даже несмотря на то, что к компьютеру у вас подключен всего один. Неизвестно, по каким мистическим причинам, но иногда это вместе с использованием нашего тестового скрипта даёт положительный результат.
Использование джойстика как мыши: специальный скрипт превращает ваш джойстик в мышь (см. ссылку в оригинале статьи).
Дистанционные пульты управления
Получение сигналов от дистанционных пультов управления с помощью специального клиентского скрипта WinLIRC — см. ссылку в оригинале статьи.
Специальные клавиши
Если ваши клавиатура или мышь имеют клавиши, не перечисленные выше, вы всё равно имеете возможность использовать их в качестве горячих клавиш, используя следующий метод:
- Вначале убедитесь, что у вас проинсталлирован обработчик клавиатурных прерываний (keyboard hook) — #InstallKeybdHook.
- Запускаем этот скрипт, и затем двойным кликом по его иконке в системном трее открываем его главное окно.
- Затем нажимаем ту самую клавишу, которую пытаемся определить.
- Далее открываем меню окошка скрипта «View — Key history and script info» и прокручиваем записи до самого низа.
- Где-то внизу этого лога должны быть записи по нажатию-отпусканию нашей искомой клавиши. Сам лог обновляется нажатием клавиши F5. Примечание: если после нажатия искомой клавиши никаких записей в логе не появилось, значит такая клавиша не распознаётся данной программой. В этом случае вы не можете использовать данную клавишу как горячую, т.к. либо драйвер вашей клавиатуры, либо сама её «железная» составляющая даёт сигнал слишком низкого уровня, недоступного для AutoHotkey. В случае со «злобными» драйверами, вы можете попробовать либо перенастроить сами «родные» драйвера, либо заменить их на другие, более дружественые, например такие, как дефолтные клавиатурные драйвера Windows.
- Если ваша клавиша успешно определилась, обратите внимание на трехзначное шестнадцатеричное число во второй колонке лога (например, 159).
- Теперь, чтобы использовать данную клавишу как горячую, следуйте данному примеру:
SC159:: ; Замените 159 на индекс вашей клавиши. MsgBox, Вы нажали клавишу %A_ThisHotKey% Return
Как альтернативный способ или в добавление к описанному выше: для переназначения какой-либо клавиши в нашу «искомую» клавишу, используйте запись вида #c::Send . Замените 159 на индекс вашей клавиши, определённый вышеописанным методом. При необходимости замените буквы FF на те, что отображены в первой колонке лога «View-Key history» (код вашей виртуальной клавиши).
VK не отправляет клавиатуру с кнопкой-ссылкой, чей код написан на PHP. Есть ли решение?
Добра, народ)
Столкнулся со следующей проблемой: VK не отображает клавиатуру бота, содержащую кнопки-ссылки (тип кнопки: open_link). Лог неудачных запросов пуст, остальная часть кода также выполняется — в результате чего выяснилось, что проблема кроется непосредственно в коде отправки клавиатуры или в её обработке VK. Мой код выглядит следующим образом, базируется на самолично улучшенной библиотеке vk_api.php.
Код функции отправки клавиатуры:
class vk_api< private $token = ''; private $v = ''; public function __construct($token, $v)< $this->token = $token; $this->v = $v; > public function sendButton($sendID, $message, $gl_massiv = [], $inline = False, $one_time = False) < $buttons = []; $i = 0; foreach ($gl_massiv as $button_str) < $j = 0; foreach ($button_str as $button) < $buttons[$i][$j]["action"]["type"] = button[3]; if ($button[0] != null) $buttons[$i][$j]["action"]["payload"] = json_encode($button[0], JSON_UNESCAPED_UNICODE); if (button[3] == 'open_link') $buttons[$i][$j]["action"]["link"] = $button[4]; $buttons[$i][$j]["action"]["label"] = $button[1]; $buttons[$i][$j]["color"] = $button[2]; $j++; >$i++; > $buttons = [ "one_time" => $one_time, "buttons" => $buttons, "inline" => $inline ]; $buttons = json_encode($buttons, JSON_UNESCAPED_UNICODE); return $this->request('messages.send', ['random_id'=>rand(0,2147483647),'message'=>$message, 'peer_id'=>$sendID, 'keyboard'=>$buttons]); > >
Код использования функции отправки клавиатуры:
$vk->sendButton($peer_id, $TEXT_Start, $BTN_MainSet, False);
Код назначения переменных кнопок:
$TEXT_Start = 'Вы находитесь в собственной жилячейке.'; $BTN_Moving = [['Main Menu' => 'Moving'], $TIL_Moving, 'negative', 'text']; $BTN_LookAround = [['Main Menu' => 'Look Around'], $TIL_LookAround, 'positive', 'text']; $BTN_Settings = [['Main Menu' => 'Settings'], $TIL_Settings, 'secondary', 'text']; $BTN_Inventory = [['Persistent Buttons' => 'Inventory'], $TIL_Inventory, 'secondary', 'open_link', 'https://vk.com/im']; $BTN_GameChat = [['Persistent Buttons' => 'Game Сhat'], $TIL_GameChat, 'secondary', 'open_link', 'https://vk.com/im']; $BTN_MainSet = [[$BTN_Moving,$BTN_LookAround],[$BTN_Settings],[$BTN_Inventory,$BTN_GameChat]];
Из собственных догадок: возможно, проблема заключается в некорректном написании ссылки (в документации VK API указано, что тип переменной ссылки должен быть URL). Пробовал использовать urlencode, однако, он не помогает исправить ситуацию.
Также, пробовал искать информацию о своей проблеме в интернете, и нашёл лишь данного пользователя с аналогичной проблемой, он так и не смог решить данную проблему.
Заранее благодарю за любую помощь)
- Вопрос задан более трёх лет назад
- 644 просмотра
4 комментария
Простой 4 комментария
играю в игру,там нужно нажать клавишу Button 2 , что это за клавиша такая?
Игра скорей всего порт с консолей, вот и требует эту кнопку или же это одна из кнопок мыши ( что мало вероятно).
P@nterIПросветленный (36364) 13 лет назад
оказалась кнопка мыши=)
Остальные ответы
«Кнопка 2» на джойстике
P@nterIПросветленный (36364) 13 лет назад
а на компе?
Максим Горький Мудрец (18481) Как вариант — в настройках управления надо назначить «кнопку 2», например cntrl или shift
это либо кнопка виртуальная — в программировании, той есть искать на мониторе.
либо клавиша — 2. но это мало вероятно.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Callback кнопка VK через VK.Net
Может кто использует VK.net для работы с Api VK? Объясните в чем суть проблемы моей Callback кнопки?
var button = new MessageKeyboardButtonAction < Type = KeyboardButtonActionType.Callback, Label = "Нажмите", Payload = "", >; var keyboard = new KeyboardBuilder().AddButton(button,KeyboardButtonColor.Primary).Build(); services.AddSingleton(keyboard);
В контроллере отправляю клавиатуру с кнопкой:
private void SendMessageToUser(long? fromId, string message) < Random random = new Random(); int randomId = random.Next(0, 1000); MessagesSendParams sendParams = new() < RandomId = randomId, PeerId = fromId, Message = message, Keyboard = _keyboard >; _vkApi.Messages.Send(sendParams);
Если создам Type = KeyboardButtonActionType.Text, `, то ВК отправляет мне запрос в том числе с полем Payload. Если KeyboardButtonActionType.Callback , индикатор на кнопке бесконечно крутится. Вк не отправляет мне никакого запроса при этом. Я ожидал получить запрос c типом message_event, и payload внутри, что бы вернуть ответ. Разве не так это должно работать? Помогите разобраться. Спасибо. Документация API VK о работе с кнопками Документация VKNET где добавили Callback кнопки и метод работы с ними SendMessageEventAnswer что-то я не понимаю как с этим методом работать. Где я должен взять Event_ID , если мне его должен прислать VK API при нажатии на кнопку, но он мне ничего не присылает Моя задача при нажатии на кнопку пользователем сменить режим бота на Аудиосообщения. Я хочу получить запрос и изменить режим ответа бота. Желательно показав show_snackbar