Создать «Поддельные ключи», которые компьютер интерпретирует как настоящие?


20

объяснение

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

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

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

Почему?

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

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

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

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

Windows 10 Pro (x64)


1
Это интересная головоломка ...
Wogsland

Могу ли я предложить покупку клавиатуры с пользовательскими клавишами, вы можете получить их. пример; amazon.co.uk/Programmable-aLLreLi-Mechanical-Keyboard-Gameboard/…
Роберт Паундер

1
Изображения, которые вы включили, НЕ имеют стандартной клавиатуры США. Я не могу поверить, что ты получил самую основную часть этого НЕПРАВИЛЬНОГО. Стандартная клавиатура - это совместимая с IBM-PC клавиатура, в основном полноразмерная настольная клавиатура с двумя клавишами WINDOWS. Вы изобразили фирменную клавиатуру Apple здесь. Это НЕ стандартная клавиатура. Вы должны это исправить; Ваш вопрос сейчас не имеет абсолютно никакого смысла, поскольку вы спрашивали о стандартных клавиатурах, а затем включали схемы нестандартных клавиатур. Вам будет лучше удалить эти изображения, если вы действительно спрашиваете о стандартных клавиатурах
InterLinked

Ответы:


15

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

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

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}

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


Это выглядит именно то, что мне нужно. Тем не менее, я полностью потерялся в программе. Я создал файл .AHK. Первая строка говорит #p :: а вторая говорит send, £ Это должно сработать, верно? Или я что-то упустил полностью. Если возможно, не могли бы вы предоставить пример сценария? Что-то вроде скрипта, который сообщает компьютеру каждый раз, когда WIN-F1 нажимается, чтобы зарегистрироваться как F13 вместо этого, мне будет достаточно для сборки.
Огромное

Справка AutoHotKey (AutoHotkey.chm в папке с программой) довольно хороша. Запись в функции Send и запись HotKey хорошо читаются. Я также обновлю ответ, чтобы включить win-F1 -> F13.
Сэр Аделаида,

Если KeyTweak не позволяет новые ключи, но позволяет перемещать их, вы могли бы получить 1 дополнительный виртуальный ключ, взяв макет в Великобритании и переместив ключи в соответствии с макетом в США?
user1937198

Однако, есть клавиши, которые не появляются на большинстве клавиатур, таких как F24 , которые используются Томом Скоттом для его клавиатуры Emoji и Тараном из Linus Tech Tips для его макросов видеоредактора.
TRiG

1

Извиняюсь за поздний ответ. Мне нужно было получить доступ к функциональным клавишам после 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.