18

объяснение

Хорошо, так что это фотография общей раскладки клавиатуры.

Что мне интересно, так это: возможно ли эмулировать дополнительные клавиши на клавиатуре, кроме стандартных клавиш? Например, я мог бы заставить свой компьютер думать, что на моей клавиатуре также есть 3 дополнительные клавиши, обозначенные FK1, FK2 и FK3.

Эти дополнительные три клавиши не будут буквенными клавишами, такими как « Домой», «Вставить», «Страница вверх» и т.д.
По сути, они ничего не будут делать, если не назначат что-то сделать. Например, если бы я установил горячую клавишу в программе, чтобы использовать FK1, она зарегистрировала бы ее.

Зачем?

Я рад, что ты спросил. Я много играю в игру под названием ArmA 3 , и те из вас, кто знаком с игрой, знают, что она использует практически все клавиши на клавиатуре.
Для общения с друзьями в этой игре я использую TeamSpeak. У меня есть звуковая панель для teampeak, и я хочу иметь возможность активировать различные звуки с помощью горячих клавиш вместо нажатия и нажатия на Alt, но в ArmA практически не осталось свободных клавиш со всеми модами, которые я использую.

Даже если бы вы могли создать эти "фальшивые клавиши", как бы вы использовали их в игре, если они не на реальной клавиатуре?

Отличный вопрос.
Моя клавиатура - Logitech G910 Orion Spark, в которой 27 макросов. Я предполагаю, что я могу настроить каждый из этих макросов для вызова кнопок фальшивой клавиатуры во время использования.

Это, вероятно, очень запутанно читать, но я сделал все возможное.

Windows 10 Pro (x64)

2 ответа2

14

Когда вы нажимаете клавишу на клавиатуре, аппаратное обеспечение генерирует «код сканирования», которое затем интерпретируется как нажатие определенной клавиши.

Переназначение ключей

KeyTweak позволяет переназначить нажатие клавиш, которое Windows интерпретирует из каждого кода сканирования, добавив соответствующие записи реестра.

К сожалению, он не позволяет добавлять дополнительные фальшивые ключи. Самое близкое, что можно получить - это возможность переназначения клавиш управления мультимедиа / веб, которые есть у некоторых клавиатур. Это также не позволяет назначать коды клавиш, которые обычно не используются на вашей клавиатуре. Поэтому, если у вас есть клавиатура США, она не позволит вам назначить Ó или £. Таким образом, вы все равно будете ограничены использованием обычных букв, которые, как вы говорите, вы исчерпали.

Подделывая это

AutoHotkey позволяет сканировать коды и необычные символы, генерируемые скриптами.

Этот скрипт генерирует £ всякий раз, когда нажимается Win+p (я достал символ из интернета и вставил его в текстовый редактор, который использовал для создания скрипта):

#p::
send, £

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

К счастью, AutoHotkey также может генерировать коды сканирования клавиатуры. Этот сценарий будет генерировать пробел при нажатии Win+p, поскольку код сканирования 39 (шестнадцатеричный) является пробелом (см. Список кодов сканирования).

#p::
send, {sc39}

AutoHotkey также имеет другой метод для создания виртуальных ключей. Я не исследовал разницу, но этот скрипт будет генерировать пространство с помощью виртуальной клавиши при нажатии win+p:

#p::
send, {vk20}

В этом справочнике перечислены все коды виртуальных ключей, включая многие нестандартные ключи, которые вы еще не использовали:https://autohotkey.com/board/topic/98757-how-to-create-a-new-virtual- ключи /

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

Последняя часть головоломки - заставить макросы Logitech вызывать скрипт AutoHotkey, который генерирует виртуальный ключ. Вы бы создали скрипт AutoHotkey без горячей клавиши, поэтому он запускается сразу при запуске - например,

send, {vk7B}

или же

send, £

Свяжите файлы * .ahk с программой Autohotkey, а затем получите макрос Logitech, чтобы открыть сохраненный скрипт.

Примечание: я не проверял это ни в одной игре. Вероятно, он будет иметь разные результаты в разных играх - в зависимости от того, что они принимают в качестве действительных записей. В приведенной выше ссылке «Виртуальные ключи» люди обсуждают, как делать почти то, что вы хотите, и, кажется, добились определенного успеха с использованием клавиш F13-F24, так что, возможно, попробуйте сначала.

vk7B    sc58    F12
vk7C    sc64    F13
vk7D    sc65    F14
vk7E    sc66    F15
vk7F    sc67    F16
vk80    sc68    F17
vk81    sc69    F18
vk82    sc6A    F19
vk83    sc6B    F20
vk84    sc6C    F21
vk85    sc6D    F22
vk86    sc6E    F23
vk87    sc76    F24

РЕДАКТИРОВАТЬ: в соответствии с просьбой в комментариях; простой скрипт для создания F13 может выглядеть так:

b::
send, {vk7C}

Каждый раз, когда вы нажимаете «b», когда этот скрипт активен (в вашем трее рядом с часами), F13 будет отправлено. Этот скрипт будет оставаться активным и запускаться каждый раз, когда вы нажмете «b», пока не убьете его. Как только игра зарегистрирует F13 в настройке ключа, убейте этот скрипт и сделайте так, чтобы Logitech вызывал:

send, {vk7C}

Этот не останется активным, он будет запускаться один раз, а затем завершаться при каждом вызове.

0

Извиняюсь за поздний ответ. Мне нужно было получить доступ к функциональным клавишам после F12, что, похоже, не учитывают нынешние производители клавиатуры, но достаточно просто с AutoHotkey. Я использовал это, чтобы добавить эти нажатия клавиш в качестве макросов для моей мыши, которая иначе не поддерживает добавление произвольных клавиш.

z::
send, {F13}
return

x::
send, {F14}
return

c::
send, {F15}
return

v::
send, {F16}
return

b::
send, {F17}
return

n::
send, {F18}
return

m::
send, {F19}
return

l::
send, {F20}
return

k::
send, {F21}
return

j::
send, {F22}
return

h::
send, {F23}
return

g::
send, {F24}
return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .