No Windows 10, o shell padrão é explorer.exe
, fornecendo a barra de tarefas, os ícones da área de trabalho e o menu Iniciar.
Desde o Windows 10 v1909, e possivelmente v1903, a Microsoft decidiu usar a hiperchave ( CTRL- ALT- SHIFT- WIN) mais algumas chaves, a chave padrão para aplicativos do Office, sem permitir que usuários que não possuem o Office instalado, usem essas chaves para seu próprio lazer. .
Eu tinha essas chaves vinculadas a ações em vários programas, mas agora cada uma dessas chaves abre uma página no meu navegador navegando para o office365, que não uso, ou, no caso do O para OneDrive, me dando uma mensagem de erro porque não tenho o OneDrive instalado.
Deveria haver a capacidade de não abrir nada quando você pressiona o botão, usando um ajuste de registro, mas no Windows 10 v1909, isso não funciona mais.
Preciso me livrar desse comportamento, então fiz algumas pesquisas:
Parece que a Microsoft incorporou esse suporte diretamente no explorer.exe
; Posso matar explorer.exe
e as teclas de atalho finalmente desaparecem, mas quando começo explorer.exe
, elas voltam.
Parece que na inicialização do explorer.exe
, essas chaves são registradas uma vez e, se o registro das chaves falhar, o Explorer não tentará novamente. Basicamente, isso significa que, para recuperar minhas teclas de atalho, preciso encerrar o Explorer, reiniciar os aplicativos que usam essas teclas de atalho e iniciar o Explorer. É ainda possível matar o explorer, iniciar um aplicativo que registre todas as teclas de atalho do escritório, iniciar o Explorer, cancelar o registro das teclas de atalho do escritório e elas ficam totalmente gratuitas a partir desse momento.
Dado que para mim só tenho um programa que usa todas essas teclas de atalho globais, tudo o que preciso fazer é iniciar este programa antes de iniciar o Explorer e ficarei bem.
É claro que eu poderia executar um script que mata o Explorer, inicia meu programa e, em seguida, inicia o Explorer, mas como isso será executado na inicialização do sistema de qualquer maneira, o flash do Explorer como resultado pode ser evitado se eu puder iniciar meu script de inicialização em vez do Explorer, algo que pode ser feito definindo um shell alternativo. Até onde sei, entretanto, apenas .exe
arquivos podem ser definidos como shell.
Alguém sabe como posso definir um .cmd
arquivo (ou outra linguagem de script) como shell ou, alternativamente, alguém conhece uma maneira limpa de resolver meu problema global de teclas de atalho?
EDITAR: estou no Windows 10 Pro.
Na verdade, tentei fazer um programa VB .net que seria iniciado explorer.exe
depois de registrar as teclas de atalho, mas não consegui fazê-lo funcionar de maneira confiável. Se explorer.exe
não for shell, e eu iniciar o explorer.exe, enquanto ele não é executado, só obtenho um navegador de arquivos, não a barra de tarefas, etc. Se o Explorer for o shell e ele iniciar, matá-lo pelo meu programa aborta a sequência de inicialização , então tenho que atrasar significativamente minha rotina, o que significa que em algum momento recebo uma reinicialização perceptível do Explorer, o que está longe do ideal.
Eu brinquei com a ideia de criar meu próprio shell como um substituto para a barra de tarefas e a área de trabalho, mas como uso o Actual Tools Window Manager e ele depende do Explorer como shell, isso também não é o ideal. Portanto, por esse motivo, esta questão ainda está em aberto, embora eu tema que o que estou perguntando simplesmente não seja possível.
Responder1
Filtro de teclado (referência do provedor WMI)
Compatível apenas com Windows 10 Enterprise e Windows 10 Education
WEKF_PredefinedKey
Esta classe bloqueia ou desbloqueia combinações de teclas predefinidas, como Ctrl+ Alt+Deleteclass WEKF_PredefinedKey { [Static] uint32 Enable ( [In] string PredefinedKey< ); [Static] uint32 Disable ( [In] string PredefinedKey ); [Key] string Id; [Read, Write] boolean Enabled; };
Fonte: Documentos Microsoft
Responder2
Não testei essa ideia, mas parece plausível e direta: em vez de substituir o Explorer, crie um .reg
arquivo que exclua ou modifique as entradas ofensivas criadas pelo Explorer no Registro. Em seguida, crie uma tarefa no Agendador de Tarefas do Windows que executará o .reg
arquivo e será acionada sempre que você fizer logon no Windows.
Para mais informações, veja:
Como adicionar, modificar ou excluir subchaves e valores de registro usando um arquivo .reg
Responder3
Está resolvido aqui: https://github.com/stringlapse/OfficeKeyFix
Você deve carregar o visual studio com extensão para tarefas normais do C++. Crie um projeto vazio, construa-o e vá para a execução automática.
É melhor criar tarefas no planejador de tarefas com atraso de 30 ou 60 segundos.