Como atualizar a área de trabalho sem reiniciar o explorer.exe?

2

Tenho conhecimento suficiente sobre arquivos de registro que sei como e onde alterar a localização dos desktops por meio de um script.

Estou procurando uma maneira de "atualizar" (atualizar / recarregar / sincronizar) a área de trabalho quando ocorrerem alterações no registro.

A solução precisa ser feita automaticamente, ou seja, com base em um script ou programa, no entanto, não posso e não quero matar o processo explorer.exe, pois isso prejudica mais o sistema do que o pretendido.

Notas relacionadas a respostas, não à pergunta:

A atualização da F5 Aparentemente funciona, mas até agora consegui fazê-la funcionar com um script autoit. O problema era que eu estava alterando um valor de variável de ambiente que era apenas um local padrão dele, e não utilizei a API do windows de SHSetKnownFolder . Eu preciso descobrir como obter essa função dentro dos meus scripts batch / vbs.

Se você acredita que matar o explorer.exe com força não prejudica o computador, posso aceitar que, se o tempo necessário para reinicializá-lo superar o método básico de alterar o local da área de trabalho através da interface do usuário. / p>

A coisa que pode ser intencionalmente procurando é um cmdlett do windows powershell, que requer uma chamada api SHSetKnownFolderPath.

O que eu quero que aconteça é o que ocorre no final deste vídeo , mas a partir de um script batch ou vbs.

    
por Jouster500 10.07.2016 / 20:39

1 resposta

4

Para atualizar o conteúdo da área de trabalho (por exemplo, após alterar sua localização), basta clicar em uma seção vazia e pressionar F5 .

Isso só funciona ao lidar com chamadas de API que são mantidas pelo processo Explorer.exe, e é por isso que você descobriu originalmente que matar o processo Explorer.exe fez o que você precisa em primeiro lugar.

Sim, você pode alterar o valor do registro da área de trabalho, mas como você não fez isso por meios normais ou corretos, a atualização típica da F5 não funcionou.
Outros cenários em que você pode encontrar problemas, por exemplo, se a conexão de rede for perdida enquanto o caminho real da área de trabalho não tiver sido alterado, o Explorer apresentará um erro informando que o local não está mais acessível. Se a rede for restaurada, o Explorer simplesmente não será atualizado.

No seu caso, o SHSetKnownFolderPath que você descobriu com autoit (que também é um C ++ script para Windows), executa o método corretamente, permitindo que você clique na área de trabalho e pressione F5 , emitindo uma atualização que recebe a capacidade de atualizar graças à API.

    
por 10.07.2016 / 20:51