
Tenho usado atalhos de teclado para algumas pastas no Windows 7. Ultimamente comecei a usar o Windows 8, agora usando o Windows 8.1.
Parece haver um problema com os atalhos de teclado na C:\Users\username\Links
pasta. Eu atribuo o atalho, mas não funciona. Qualquer outro atalho para qualquer pasta, entretanto, funciona perfeitamente. Não consigo usar o atalho do teclado apenas para aqueles que estão na Links
pasta.
Como consertar este problema?
Editar
Tentei algumas soluções alternativas, mas elas não funcionaram:
Cortei o atalho da pasta Links e colei no Desktop. O mesmo atalho de teclado não funcionou. Mudei o atalho de teclado para outra coisa (a propósito, tenho certeza de que os atalhos de teclado não estão atribuídos a outra coisa) e funcionou com um atalho de teclado diferente. Mudei de volta para a pasta Links, não funcionou. Eu, novamente, mudei o atalho para outra coisa. Achei que funcionaria desta vez, mas mesmo que o atalho seja movido de volta para a pasta Links e reatribuído a um atalho de teclado diferente, funcionounãotrabalhar.
Responder1
Testes
Substituição de atalho
Fiz alguns testes e obtive resultados interessantes e muito reveladores. Fiz o teste no Windows ME (era a versão mais antiga do Windows que eu tinha uma cópia em execução na época) e repeti com o XP e depois com o 7. Foi isso que fiz, que você pode repetir:
- Crie um atalho para a calculadora na área de trabalho, nomeie-o
C
e atribua-lhe uma tecla de atalho não utilizada - Teste se a tecla de atalho funciona
- Crie um atalho para o Bloco de Notas na
Links
pasta, nomeie-oN
e atribua-lhe uma tecla de atalho diferente e não utilizada - Confirme se a tecla de atalho funcionanãotrabalhar
- Exclua o atalho para a calculadora da área de trabalho
- Mova o atalho para o Bloco de Notas da
Link
pasta para a área de trabalho e renomeie-o paraC
- Pressione a tecla de atalho que foi atribuída aooriginalatalho para a calculadora
- Observe que ele executa o Bloco de Notas
Isso ocorre no Windows ME e XP, mas no Windows 7, pressionar qualquer uma das teclas de atalho não fez nada no final.
Formato de tecla de atalho interna
A partir disso, podemos assumir que quando você atribui uma tecla de atalho a um atalho, ela atribui o caminho completo para o atalho. Por exemplo, no teste acima, definir a tecla de atalho Alt+ ⇧Shift+ Cpara o atalho da calculadora faria com que o Windows registrasse algo assim internamente:
C A S W K P
- + + - C "C:\…\Foobar\Desktop\C.lnk"
Portanto, se você excluir (ou mover ou renomear) o atalho, pressionar a tecla tentará executar o atalho que não existe. Curiosamente, se você monitorar o acesso a arquivos no Process Explorer, não verá FILE NOT FOUND
erros ao tentar acessar o atalho ausente, mas se restaurar o atalho, verá que ele é acessado novamente ao pressionar a tecla de atalho.
Gerenciamento automático de teclas de atalho
Além disso, o fato de o Windows 7 não executar o atalho copiado parece indicar que o Explorer faz algum tipo de gerenciamento de teclas de atalho sempre que os atalhos são movidos, renomeados ou excluídos, mas é claro que há limitações no que ele pode fazer. (Por exemplo, se dois atalhos compartilham uma tecla de atalho, excluir aquele que contém a tecla de atalho não irá reatribuir repentinamente a tecla de atalho para o outro, você precisa abrir manualmente o atalho desse atalhoPropriedadescaixa de diálogo e clique [OK]
para fazer isso.)
Redirecionamento de pasta de links
Considerei então redirecionar a Links
pasta (figura 1). Tentei redirecioná-lo e copiei a pasta movida de volta para o local original. Descobri que as teclas de atalho não funcionavam para atalhos em nenhuma das pastas. Em seguida, tentei retirar os atributos das pastas e até mesmo excluir os desktop.ini
arquivos delas, supondo que o Windows os tratasse de maneira especial, mas isso não ajudou. Em seguida, criei uma pasta nova e regular na pasta de dados do usuário e, para minha surpresa, teclas de atalhoaindanão funcionaria.
Teclas de atalho em todo o sistema de arquivos
Em seguida, tentei com um atalho em uma unidade diferente e ainda nada. Tentei atribuir teclas de atalho a atalhos em vários locais diferentes no Windows 7, e apenas os atalhos que estavam nas pastas Desktop
ou Start Menu
ou em um de seus subdiretórios poderiam usar teclas de atalho.
Conclusões
Parece que a função de teclas de atalho do Explorer é extremamente limitada e funciona apenas no menu Iniciar e na área de trabalho. Não sei se isso é um bug ou se é intencional porque não consigo encontrar nenhuma menção à limitação. Próprio da Microsoftpágina sobre o assuntonão diz nada sobre isso. (Deixe-os saber através doformulário de feedback. Cliquei [No]
e enviei um link para esta página.) Não há razão para acreditar que isso seja diferente no Windows 8 ou 8.1 ou possivelmente até em versões futuras (supondo que eles mantenham o Explorer).
Recomendações
Você poderia (tentar)denuncie, mas eu não teria esperança de que isso fosse consertado. Seria mais rápido e fácil armazenar apenas atalhos que precisam de teclas de atalho em outra pasta.
figura 1: Configuração de localização de links:
Responder2
Recentemente fiz uma pergunta semelhante e descobri a resposta, então acho que estou com a resposta aqui. Minha pergunta era mais sobre a função interna do gerenciamento de teclas de atalho do Windows e o que é e como fazer. Você pode adicionar pastas à lista? Existem pastas menos conhecidas onde você pode colocar atalhos com teclas de atalho? No final, acabei de confirmar o que já se sabia, mas foi assim que fiz.
Minha primeira tentativa de descobrir isso foi olharProcmontraços de explorer.exe
. Procmon é um utilitário que rastreia o acesso a arquivos e registros, e minha conclusão foi que o processo não parecia procurar nenhum caminho adicional no registro.
Não completamente satisfeito, lembrei-me que havia umVazamento de código-fonte do Windows 2000 há cerca de 10 anos. Eu rastreei isso e observei a lógica desse código. Acontece que as teclas de atalho para atalhos são gerenciadas em dois lugares.
- Ao alterar as propriedades de um atalho.Ao pressionar OK ou aplicar na caixa de diálogo de propriedades de um atalho, o Windows verifica se a pasta do atalho é ou é uma subpasta de uma lista fixa de pastas. Esta lista é
CSIDL_PROGRAMS
,CSIDL_COMMON_PROGRAMS
,CSIDL_STARTMENU
,CSIDL_COMMON_STARTMENU
,CSIDL_DESKTOPDIRECTORY
,CSIDL_COMMON_DESKTOPDIRECTORY
conforme fornecido emNotação CSIDL. (Cada item CSIDL é eventualmente comparado a um valor de registro, a menos que seja armazenado em cache em algum lugar. Não procurei os detalhes de implementação disso.) Se o atalho estiver em um desses locais, uma tecla de atalho será registrada e, se aplicável, a tecla de atalho antiga foi apagada. - Quando
explorer.exe
começa.Em uma parte diferente do código, todos os itens do menu Iniciar, bem como todos os itens da área de trabalho, são enumerados quando oexplorer.exe
processo é iniciado pela primeira vez. A enumeração desses dois caminhos diferentes é feita em funções diferentes. A função que enumera itens na pasta do menu iniciar é recursiva e também lida com o cache de ícones. A função que enumera itens na área de trabalho não é recursiva, mas apenas verifica a própria pasta da área de trabalho.
Nenhuma tentativa é feita para mover ou excluir um atalho.
Isso explica certos comportamentos estranhos, como os seguintes:
- Quando você move ou exclui um atalho de um local válido, a tecla de atalho permanece na memória e pressioná-la tentará cegamente executar o atalho agora inexistente. (Enquanto o
explorer.exe
processo atual durar.) - Da mesma forma, se você mover um atalho com uma tecla de atalho para uma pasta válida, isso não será descoberto até a próxima sessão ou até que você edite as propriedades do atalho.
- Se você criar um atalho em uma subpasta da área de trabalho, ele funcionará para a
explorer.exe
sessão atual, pois pressionar OK/aplicar adiciona a tecla de atalho de acordo com o mecanismo 1 acima. Porém, na próxima sessão, esta tecla de atalho não será adicionada, pois o atalho está em uma subpasta, queexplorer.exe
não recorre quando o processo é iniciado pela primeira vez.
No final, confirmei principalmente o que era conhecido, mas é bom saberpor que.
Responder3
Uma maneira segura de criar atalhos que sempre funcionam é usarAutoHotkey.
Como os atalhos do AutoHotkey são na verdade macros, o atalho não só garante que funcionará em qualquer lugar e sempre, mas também pode executar tarefas muito mais complicadas do que apenas iniciar um programa.
Responder4
Há uma questão relacionada,atalhos de teclado lentos da área de trabalho do Windows.
Matar aplicativos em suspensão remove o tempo limite.