Я пытаюсь открыть папку с помощью пакета, но хочу открыть папку в текущем окне проводника, а не в новом. Задержка, вызванная необходимостью повторного запуска проводника по сравнению с простой навигацией, раздражает. Есть какой-либо способ сделать это?
1 ответ
Explorer.exe не подходит для гладкого взаимодействия, которое вы хотите. Приведенные ниже команды (см. Код ниже) могут помочь вам добиться "вида" того, что вы просили, но не будут выглядеть очень хорошо. Код убил бы старый процесс Explorer по идентификатору процесса и был бы строго ограничен, потому что он работал бы, только если был только один процесс.
Лучшее, что вы можете сделать с Explorer.exe - это открыть определенную папку с выбранным файлом (он в фокусе). Это звучит многообещающе и заставляет это казаться, что больше могло быть сделано. Но это не так универсально, как можно предположить. Так что с этими ссылками из Microsoft/SS64 (в нижней части этой статьи) вы знаете, что вы не можете изменить каталоги из текущего открытого процесса Explorer. Только убей и открой новый.
REM Kill explorer without having to restart it.
wmic process where "ProcessID='11972'" CALL Terminate
REM Kill/restart Explorer
TaskKill /F /FI "ImageName eq "Explorer.exe"
Explorer
Если вы действительно хотите достичь своей цели, лучше всего использовать замену Windows Shell или какое-либо программное обеспечение для автоматизации, например AutoIT. Вы можете посмотреть тему замены оболочки Windows и найти множество приложений, у которых отсутствуют другие функции в Windows, популярная тема или, возможно, одно из них - именно то, что вы ищете.
Если вы программист, вы, вероятно, могли бы достичь этого, см. Https://stackoverflow.com/questions/9355/programmatics-select-multiple-files-in-windows-explorer
Недокументированные команды проводника от Microsoft https://support.microsoft.com/en-us/help/130510/command-line-switches-for-windows-explorer
SS64 Explorer.exe https://ss64.com/nt/explorer.html