O problema é que o Windows Explorer também fornece todo o shell para o Windows. Portanto, quando você clica no ícone Pasta, provavelmente já está usando o Explorer. Apenas inicia outro processo (ou janela).
Você pode querer procurar substituições de shell.
Atualizar
Ok, deixe-me entrar um pouco mais detalhadamente sobre minha compreensão das coisas.
Como todo o sistema funciona
Vamos começar com minha área de trabalho.
Minha área de trabalho é desenhada pelo shell. O shell é fornecido pelo explorer.exe
processo inicial que é executado quando o Windows é iniciado. Se eu tiver uma pasta na minha área de trabalho:
Eu posso clicar duas vezes nele para abri-lo:
Isso criou um novo explorer.exe
processo que agora está exibindo a janela que mostra o conteúdo da minha pasta. Mas há muitas maneiras pelas quais a mesma janela poderia ter sido aberta.
Então, por que o Windows decidiu usar explorer.exe
para exibir essa pasta?
Bem, como eu disse, a área de trabalho já é um explorer.exe
processo. Portanto, ele simplesmente será usado ShellExecuteEx()
para deixar o shell decidir o que fazer com ele. O shell criará uma nova explorer.exe
instância (porque é cabeada fazer isso de acordo com o meu conhecimento ).
Portanto, o que você pode fazer não é usado explorer.exe
para fornecer seu shell (como você já parece fazer). Você pode simplesmente fornecer um aplicativo alternativo no registro em:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
Mas ninguém está impedindo a chamada do novo shell ShellExecuteEx()
, o que invocaria novamente o shell padrão e, portanto explorer.exe
,!
E agora?
Portanto, se você realmente deseja substituir o Windows Explorer, substitua o arquivo explorer.exe
. Porque, no final, todo programa ainda pode tentar executar C:\Windows\explorer.exe
diretamente e, em seguida, você tem o mesmo velho Explorer novamente.
Mas, lembre-se de que nunca tentei substituir explorer.exe
um sistema; portanto, não sei se isso seria possível e / ou estável de usar.
Como o aplicativo XYZ faz isso?
Existem vários aplicativos que simplesmente se conectam ao Explorer, como o QTTabBar . Talvez o Explorer ++ funcione da mesma maneira. Dessa forma, você não precisa tocar em nada, pois sua modificação é sempre carregada em novos explorer.exe
processos. Entrar em detalhes sobre esse processo exigiria uma resposta totalmente nova.
E a caixa de diálogo Abrir arquivo?
Este é um novo conjunto de problemas. As caixas de diálogo Salvar e Abrir arquivo fazem parte da Biblioteca de caixas de diálogo comuns . Tentar substituí-los é difícil de imaginar. Praticamente o mesmo pode ser dito sobre aqueles como eu disse explorer.exe
. Mas isso seria muito mais assustador.