Existe uma maneira de invocar o equivalente a este item de menu especial específico do Explorer por meio da linha de comando ou de uma chamada de API?
Observação – não quero usar a solução alternativa via taskkill
, porque suponho que essa ação especial de reinicialização seja diferente de encerrar a tarefa e iniciar o EXE novamente.
Meu objetivo é ter uma maneira programática de resolver problemas quando o Windows Explorer fica instável ou para de responder. (Mas mesmo nesses casos, essa ação de Reiniciar funciona normalmente.)
Para os céticos: (respostas movidas dos comentários)
Eu me importo com a reinicialização do Windows Explorer feita da forma mais elegante possível até que ele se torne mais maduro e mais estável. Atualmente, ele ainda tem muitos bugs em comparação com o Windows Explorer, que estava aqui entre o Win XP e o Win 10.
Eu escrevo aplicativos e conheço aplicativos. Quanto maior a atenção dada à qualidade e importância do aplicativo, mais suave é o pouso integrado nele. Por exemplo, o próprio aplicativo pode enviar ao seu thread uma solicitação para parar. O thread ouve essas solicitações e para. Muito melhor do que precisar encerrar um aplicativo inteiro. Suponho que essa prática recomendada também faça parte dos aplicativos principais do Windows.
O Windows Explorer trabalha com o banco de dados do Registro e o sistema de arquivos, realizando gravações lá. É sempre melhor parar esses aplicativos com mais cuidado do que, por exemplo, o plain dumb find.exe
, que não faz nada parecido.