Como atualizar uma DLL de layout de teclado no Windows?

2

As informações sobre o layout do teclado são armazenadas em DLLs de layout de teclado no Windows. É possível criar um layout personalizado usando uma ferramenta como o Microsoft Keyboard Layout Creator ( link ). Ele cria a biblioteca dinâmica e também um instalador que coloca a DLL no lugar certo e também coloca as informações necessárias no registro para que o layout possa ser usado.

Agora, minha pergunta. Como alguém pode atualizar seu layout personalizado? Pode-se desinstalar o layout e instalar a nova versão que efetivamente substitui o arquivo DLL. No entanto, isso por si só não funciona porque parece que a cópia antiga da DLL permanece carregada em algum lugar e é usada quando se define o layout em vez de carregar uma nova versão. Então, existe uma maneira de dizer ao sistema que seu “cache de layout de teclado” é inválido? É claro que eu poderia reiniciar o sistema inteiro, mas gostaria de evitá-lo, pois é irritante e parece ser um projeto ruim para reiniciar o sistema inteiro apenas para recarregar uma DLL.

    
por user87690 13.10.2013 / 11:32

1 resposta

1

Existe um mecanismo para forçar o descarregamento de DLLs não usadas, principalmente para depurar a extensão do shell.

Do artigo Depurando com o shell :

The Shell automatically unloads any DLL when its usage count is zero, but only after the DLL has not been used for a period of time. This inactive period might be unacceptably long at times, especially when a Shell extension DLL is being debugged. You can shorten the inactive period by adding the following information to the registry.

  1. Abra o editor de registro (Iniciar - > Executar - > Regedit)
  2. Vá até: %código%
  3. Clique em Editar - > Novo, em seguida, valor DWORD
  4. Crie o valor DWORD chamado HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
  5. Clique com o botão direito do mouse nesse valor e escolha Editar
  6. Defina os dados do valor como 1 e, em seguida, clique em OK.
  7. Feche o Editor do Registro e reinicie o computador.
  8. Agora, as DLLs não utilizadas serão removidas após o encerramento dos programas.

A execução sempre com essa configuração pode tornar o computador mais lento porque o Windows continuará carregando e descarregando as mesmas DLLs quando os programas forem executados. Recomenda-se usá-lo somente ao editar uma fonte.

Como observação adicional, não sei se essa configuração também funciona com DLLs de fonte. Você terá que experimentar e ver.

    
por 28.10.2013 / 11:24