Ir para conteúdo


Foto

Remapear teclas


  • Por favor, faça o login para responder
22 respostas neste tópico

#1 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 27 abril 2017 - 08:34

Alguém sabe como alterar no registro para trocar uma letra por outra? Tipo apertei "P" e responde como se tivesse apertado "A" por exemplo!

 

OBS: Conheço dois programas que fazem isto o remapkey e o sharpkeys mas queria fazer em Autoit.



#2 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 28 abril 2017 - 02:15

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



Achei como muda pelo CMD. Olha ai.

#3 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 28 abril 2017 - 08:58

Este aí é prá LINUX e eu preciso prá windows!



#4 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 28 abril 2017 - 10:55

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



#5 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 28 abril 2017 - 11:01

Bom dia.
Desculpe o atraso...
 
Para remapear as teclas em Windows através do REGISTRO, a opção é usar a chave
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
através do valor
Scancode Map
 
Observações:
  1. Obrigatório reboot para efetivar as mudanças
  2. As mudanças são permanentes até apagar a chave do registro e reboot novamente
  3. As mudanças ocorrem para TODOS os usuários e/ou teclados (lay-outs)
 
Até o Windows XP era possível remapear as teclas "por usuário" usando a chave
HKEY_CURRENT_USER\Keyboard Layout
porém do Windows 7 pra frente não funciona mais
 
A "sintaxe" do Scancode Map é a seguinte:
  • 4 bytes indicando a versão (deixar sempre zeros)
  • 4 bytes indicando os flags (deixar sempre zeros)
  • 4 bytes informando a quantidade de teclas que estão sendo remapeadas (nro de teclas + 1 que é o terminador NULL da string)
  • 4 bytes para cada tecla remapeada sendo:
  •    2 bytes para a tecla desejada (deixar 00 00 para desativar a tecla)
  •    2 bytes da tecla original
  • 4 bytes indicando terminador NULL (deixar sempre zeros)
 
A maneira mais simples de pegar os Scancodes é utilizando o Sharpkeys que mostra os Scancodes
 
Senão os Scancodes podem ser procurados na net mas recomendo (para melhor entendimento):

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 
 
Como exemplo usando a sugestão do teu post (trocando o P pelo A)
 
Precisamos saber
00 18 = scancode tecla P
00 1E - scancode tecla A
 
Resultando na string
00 00 00 00 -> sempre zeros
00 00 00 00 -> sempre zeros
02 00 00 00 -> 2 definições (1 tecla e 1 NULL)
1E 00 18 00 -> troca letra P pela letra A (observe que é primeiro a tecla final depois a inicial)
00 00 00 00 -> sempre zeros (NULL)
 
Ficando em AutoIt

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Depois só reiniciar  :lol:

Editado por Manimal, 28 abril 2017 - 05:56 .


#6 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 28 abril 2017 - 11:09

@Manimal eu não sou o professor Raimundo mas queria ter um filho assim :aplausos: obrigado pela grande ajuda!



#7 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 28 abril 2017 - 11:24

 

Bom dia.
Desculpe o atraso...
 
Para remapear as teclas em Windows através do REGISTRO, a opção é usar a chave
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
através do valor
Scancode Map
 
Observações:
  1. Obrigatório reboot para efetivar as mudanças
  2. As mudanças são permanentes até apagar a chave do registro e reboot novamente
  3. As mudanças ocorrem para TODOS os usuários e/ou teclados (lay-outs)
 
Até o Windows XP era possível remapear as teclas "por usuário" usando a chave
HKEY_CURRENT_USER\Keyboard Layout
porém do Windows 7 pra frente não funciona mais
 
A "sintaxe" do Scancode Map é a seguinte:
  • 4 bytes indicando a versão (deixar sempre zeros)
  • 4 bytes indicando os flags (deixar sempre zeros)
  • 4 bytes informando a quantidade de teclas que estão sendo remapeadas (nro de teclas + 1 que é o terminador NULL da string)
  • 4 bytes para cada tecla remapeada sendo:
  •    2 bytes para a tecla desejada (deixar 00 00 para desativar a tecla)
  •    2 bytes da tecla original
  • 4 bytes indicando terminador NULL (deixar sempre zeros)
 
A maneira mais simples de pegar os Scancodes é utilizando o Sharpkeys que mostra os Scancodes
 
Senão os Scancodes podem ser procurados na net mas recomendo (para melhor entendimento):

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 
 
Como exemplo usando a sugestão do teu post (trocando o P pelo A)
 
Precisamos saber
00 18 = scancode tecla P
00 1E - scancode tecla A
 
Resultando na string
00 00 00 00 -> sempre zeros
00 00 00 00 -> sempre zeros
02 00 00 00 -> 2 definições (1 tecla e 1 NULL)
1E 00 18 00 -> troca letra P pela letra A (observe que é primeiro a tecla final depois a inicial)
00 00 00 00 -> sempre zeros (NULL)
 
Ficando em AutoIt

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Depois só reiniciar  :lol:

 

 

 

  :digno1:  @Manimal

 

Vou te falar uma coisa , atualmente estou desapontado com umas coisas que aconteceram em relação ao ser humano , sempre aparece na minha vida umas pessoas que querem levar vantagem , enfim , mas adoro vir aqui pois tem pessoas como você Manimal que sempre está disposto a ajudar o próximo e compartilha esse conhecimento, te juro que pensei que ia demorar para solucionarem , mas você é fera mesmo, nada como conhecimento e experiência.

 

Bom sem mais... ==> MUITO OBRIGADO.  :like_icon:  de Coração.  :P 


Editado por Fábio iGames, 28 abril 2017 - 11:25 .


#8 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 28 abril 2017 - 12:37

@Manimal tentei mudar trocar o ENTER por ESCPAÇO e não funcionou aqui no windows XP!

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



#9 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 28 abril 2017 - 02:05

Belini nem testei ainda , mas o código do Enter é : 0x0D , e o do Espaço é 0x20.

 

 

Será que não é isso?  ;)


Editado por Fábio iGames, 28 abril 2017 - 02:06 .


#10 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 28 abril 2017 - 02:48

Esse é o código HEX delas e no exemplo o @Manimal usou foi o Scancode!



#11 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 28 abril 2017 - 03:56

Aqui no W7 funcionou perfeito...

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



#12 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 28 abril 2017 - 05:55

@Belini.

Nossa, mil desculpas!

 

Na hora que passei para AutoIt o código em hexa me atrapalhei todo! Isso é o que dá ficar trocando de linguagem a todo momento! Desculpa mesmo!

A sintaxe dos scancodes está correta, só que o comando em AutoIt é que está errado pois do jeito que eu coloquei gravou como uma string e não como binário!

 

O comando correto é:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Testa ae! Já acertei no post original também.

 

 

 

Vou te falar uma coisa , atualmente estou desapontado com umas coisas que aconteceram em relação ao ser humano , sempre aparece na minha vida umas pessoas que querem levar vantagem

Sei como é Fábio. Também fico muito chateado com isso! E recentemente parece que a coisa só piora!

 

 

Mas conhecimento é a única coisa que se multiplica quando se divide com ou outros! 

 

E faça com os outros o que vc gostaria que fizesse com vc!

As vezes, tbm perco a fé nas pessoas... Mas agradecemos porque elas nos ensinam o que não devemos ser!



#13 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 29 abril 2017 - 09:36

@Manimal e para desfazer a ação é só deletar a chave?



#14 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 01 maio 2017 - 07:24

Isso mesmo... E reiniciar!



#15 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 05 maio 2017 - 04:22

Ou @Manimal. Mestre kkkkk da umas dicas ai de programador. Que linguagem você mais gosta e o que mais ajuda e a que se mais precisa no ramo da programação. Eu estou querendo ampliar meu saber. Por muitos anos eu aprendi um pouco de tudo...html, php, css, ajax, lua, c++, o basico mesmo, com o autoit eu aprendi a parte mais lógica do funcionamento das coisas. Eu parei de "pega isso...coloca ali...pega aquilo e coloca ali" eu gostaria de fazer algo diferente, o que me falta é ideia. Manda umas dicas ai pro pessoal.

Editado por Pedro Pinheiro, 05 maio 2017 - 04:24 .


#16 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 321 posts
  • LocationVideira/SC

Postado 07 maio 2017 - 09:55

Olá Pedro.

 

Vc já está ampliando seu saber! E quanto mais vc sabe, mais aprende que precisa saber mais! Afinal: Só sei que nada sei (Sócrates)

 

Não tenho uma linguagem preferida, acredito que as linguagens são como ferramentas: vc usa uma adequada para cada serviço!

 

Gosto muito de AutoIt, mas já tive paixões por outras, até porque foram muito importantes em etapas diferentes da minha vida. Pode-se dizer que a cada etapa, uma linguagem!

 

Dicas? Diga-me vc! Vejo os posts de vocês aqui trabalhando numa área bem diferente e acho o máximo que tenha pessoas fazendo isso e que tenha mercado pra isso!  :600866:



#17 Pedro Pinheiro

Pedro Pinheiro

    Membro Nível 1

  • Membros
  • PipPip
  • 185 posts
  • LocationBrazil

Postado 07 maio 2017 - 05:25

bateu uma bad agora "mercado pra isso" to mendigão, net cortada huehuehue.

#18 Fábio iGames

Fábio iGames

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPip
  • 178 posts
  • LocationSão Paulo / SP

Postado 07 maio 2017 - 09:35

Ou @Manimal. Mestre kkkkk da umas dicas ai de programador. Que linguagem você mais gosta e o que mais ajuda e a que se mais precisa no ramo da programação. Eu estou querendo ampliar meu saber. Por muitos anos eu aprendi um pouco de tudo...html, php, css, ajax, lua, c++, o basico mesmo, com o autoit eu aprendi a parte mais lógica do funcionamento das coisas. Eu parei de "pega isso...coloca ali...pega aquilo e coloca ali" eu gostaria de fazer algo diferente, o que me falta é ideia. Manda umas dicas ai pro pessoal.

 

Caracas Pedro Pinheiro com todo esse currículo...

 

:ninja:  Pedro:  " html, php, css, ajax, lua, c++, o básico mesmo, com o autoit eu aprendi a parte mais lógica do funcionamento das coisas."   ==>  UAU   :like_icon: 

 

Eu só tenho AutoIt e tô pegando firme no C++ , o resto brinco no Photoshop e Flash que é bem Básico do Básico mesmo... :lol: 

 

você com isso tudo ai :P ... acho que tem que sair postando oque sabe fazer e parar de jogar Dota amigão.  :huh: 

 

É como te disse antes , precisa de alguém que reconheça o seu talento. :trofeu:

 

Uma hora vai acontecer pode crer, tenha FÉ e faça a sua parte, vai estudando e praticando. :up:

 

Você sabe que quero muito que você tenha reconhecimento e seja recompensado pelo tempo que se dedica estudando e etc.

 

Eu só posso te aconselhar como já fiz muitas vezes , até em OFF. Desejo muito que as coisas melhorem pra você e se precisar de algo que estiver ao meu alcance é só falar.  ;)

 

DEUS Abençoe. 



#19 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 08 maio 2017 - 03:56

bateu uma bad agora "mercado pra isso" to mendigão, net cortada huehuehue.

 

na minha humilde opinião acho que "ideias" contam mais que a propia linguagem usada, claro que dependendo da que for usada será mais facil ou dificel certas tarefas, e ao meu ponto de vista é melhor ser "bom" em uma linguagem do que mediano em 3.. mais no geral sempre tem espaço pra todos, basta aproveitar as oportunidades!



#20 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.202 posts
  • LocationMinas Gerais

Postado 10 maio 2017 - 04:05

@Manimal deu certo mas prá trocar apenas uma tecla por outra mas eu como faço prá trocar 2 teclas por outras duas?






0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência