Crie “chaves falsas” que o computador interpreta como reais?

18

Explicação

Tudo bem, então esta é uma fotografia do layout geral de um teclado.

O que eu estou querendo saber é: É possível emular teclas extras em um teclado diferente das teclas padrão? Por exemplo, eu poderia enganar meu computador pensando que meu teclado também tem 3 chaves extras identificadas como FK1, FK2 e FK3.

Essastrêschavesextrasnãoseriamchavesdeletra,comoPáginainicial,Inserir,Páginaacima,etc.
Basicamente,elesnãofariamnada,amenosquefossemdesignadosparafazeralgumacoisa.Porexemplo,seeudefinirumatecladeatalhoemumprogramaparausarFK1,elaseriaregistrada.

Porquê?

Estoufelizquevocêtenhaperguntado.EujogomuitoumjogochamadoArmA3,eaquelesqueestãofamiliarizadoscomojogosabemqueeleusapraticamentetodasasteclasdoteclado.
ParasecomunicarcommeusamigosnestejogoeuusooTeamSpeak.Eutenhoumamesadesomparaoteamspeak,eeuquerosercapazdeativarsonsdiferentesusandoteclasdeatalhoemvezdetabsecliquesalternados,masnãohávirtualmentenenhumateclalivrenoArmAcomtodososmodsqueeuuso.

Mesmosevocêpudessecriaressas"chaves falsas", como você as usaria no jogo se elas não estivessem em um teclado real?

Excelente pergunta .
Meu teclado é um Logitech G910 Orion Spark, que tem 27 macros nele. Estou assumindo que posso configurar cada uma dessas macros para chamar os botões falsos do teclado durante o uso.

Isso provavelmente é extremamente confuso para ler, mas eu fiz o meu melhor.

Windows 10 Pro (x64)

    
por Josh Silveous 06.03.2017 / 03:07

2 respostas

13

Quando você pressiona uma tecla no teclado, o hardware gera um 'código de verificação', que o software interpreta como uma tecla pressionada.

Reatribuição de chave

O

KeyTweak permite que você reatribua a tecla pressionada que o Windows interpreta de cada código de verificação, adicionando as entradas apropriadas do Registro.

Infelizmente, não permite adicionar outras chaves falsas. O mais próximo que fica é permitir a reatribuição das teclas de controle de mídia / web que alguns teclados possuem. Ele também não permite atribuir códigos de teclas que o seu teclado normalmente não usa. Então, se você tem um teclado nos EUA, não permitirá que você atribua Ó ou £. Então você ainda estaria limitado a usar as letras normais, que você diz que está exausto.

Fingindo

AutoHotkey permite que códigos de verificação e símbolos incomuns sejam gerados por scripts.

Este script gera £ sempre que o Win + p é pressionado (tirei o símbolo da internet e o colei no editor de texto que estava usando para criar o script):

#p::
send, £

Dependendo do seu jogo, você pode usar um script como este para obter como uma chave em seu jogo. Mas, se o jogo estiver esperando que os códigos reais de varredura de teclado sejam gerados, isso não funcionará. Depende de como o jogo interage com o hardware.

Felizmente, o AutoHotkey também pode gerar códigos de verificação de teclado. Esse script gerará um espaço quando o Win + p for pressionado, porque o código de verificação 39 (hex) é espaço (consulte Lista de códigos de verificação ).

#p::
send, {sc39}

O AutoHotkey também possui outro método para gerar chaves virtuais. Eu não pesquisei a diferença, mas esse script irá gerar espaço usando uma chave virtual ao pressionar win + p:

#p::
send, {vk20}

Esta referência lista todos os códigos de chave virtual, incluindo muitas chaves não padrão que você ainda não usou: link

Você pode tentar criar um script que envie uma Chave Virtual não padrão ao seu jogo. Se o jogo registra e permite que você salve-o em sua página de configuração do teclado, você provavelmente fará isso funcionar.

A última peça do quebra-cabeça é fazer com que as macros da Logitech chamem o script AutoHotkey que gera a chave virtual. Você criaria um script AutoHotkey sem uma tecla de atalho, por isso é disparado imediatamente quando executado - como

send, {vk7B}

ou

send, £

Associe arquivos * .ahk ao programa Autohotkey e, em seguida, obtenha a macro Logitech para abrir o script salvo.

Nota: Eu não testei isso em nenhum jogo. Ele provavelmente terá resultados diferentes em jogos diferentes - dependendo do que eles aceitarem como entradas válidas. No link Virtual Keys acima, as pessoas estão discutindo fazendo quase exatamente o que você quer fazer, e parece ter tido algum sucesso com o uso de chaves F13-F24, então talvez tente as primeiras.

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

EDITAR: Conforme solicitado nos comentários; um script simples para criar o F13 poderia se parecer com:

b::
send, {vk7C}

Toda vez que você apertar 'b' enquanto este script estiver ativo (na sua bandeja perto do relógio), o F13 será enviado. Este script permanecerá ativo e será executado toda vez que você apertar 'b' até que você o mate. Quando o jogo registrar o F13 na configuração da chave, mate esse script e faça um assim para a Logitech chamar:

send, {vk7C}

Este não ficará ativo, será executado uma vez e depois terminará, cada vez que for chamado.

    
por 06.03.2017 / 06:34
0

Desculpas pela resposta tardia. Eu tive a necessidade de acessar as teclas de função após a F12, algo que os atuais fabricantes de teclados parecem não considerar, mas bastante fácil com o AutoHotkey. Eu usei isso para adicionar esses pressionamentos de tecla como macros ao meu mouse, o que não suporta a adição de chaves arbitrárias de outra forma.

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
    
por 16.03.2018 / 18:06