2

У меня достаточно знаний о файлах реестра, которые я знаю, как и где изменить местоположение рабочих столов с помощью сценария.

Я ищу способ "обновить" (обновить / перезагрузить / синхронизировать) рабочий стол после внесения изменений в реестр.

Решение должно быть сделано автоматически, т.е. запускается из скрипта или программы, однако я не могу и не захочу уничтожить процесс explorer.exe, поскольку это вредит большей части системы, чем предполагалось.

Примечания, связанные с ответами, а не с вопросом:

Обновление F5 Очевидно работает, но я до сих пор смог заставить его работать со сценарием autoit. Проблема заключалась в том, что я изменял значение переменной среды, которое было просто ее местоположением по умолчанию, и не использовал windows api SHSetKnownFolder. Мне нужно выяснить, как получить эту функцию в моих пакетных / VBS-скриптах.

Если вы считаете, что принудительное уничтожение explorer.exe не нанесет вреда компьютеру, я могу принять это, если тот факт, что время, необходимое для его перезагрузки, намного превышает базовый метод изменения местоположения рабочего стола через пользовательский интерфейс.

Вещь, которая может быть преднамеренно искала, является командлетом Windows PowerShell, который требует вызова API SHSetKnownFolderPath.

То, что я хочу, это то, что происходит в конце этого видео, но из пакетного или VBS-скрипта.

1 ответ1

4

Чтобы обновить содержимое рабочего стола (например, после изменения его местоположения), просто щелкните пустой раздел и нажмите клавишу F5.

Это работает только при обработке вызовов API, которые поддерживаются процессом Explorer.exe, поэтому вы изначально обнаружили, что уничтожение процесса Explorer.exe в первую очередь выполнялось именно так, как вам нужно.

Да, вы можете изменить значение реестра рабочего стола, но поскольку вы не сделали это обычными или правильными способами, обычное обновление F5 не сработало.
В других сценариях, где вы могли столкнуться с проблемами, например, если сетевое соединение потеряно, а фактический путь к рабочему столу не изменился, Explorer выдаст ошибку, что местоположение больше не доступно. Если сеть будет восстановлена, Explorer просто не будет обновляться.

В вашем случае SHSetKnownFolderPath, который вы обнаружили с помощью autoit (который также является сценарием C++ для Windows), правильно выполняет метод, позволяющий щелкнуть рабочий стол и нажать клавишу F5, выполнив обновление, которое дает возможность обновляться благодаря API ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .