rekshd
- Longevity: 5 years 9 months
- Posts: 331
- REPUTATION:7[+] [-]
|
Решил выложит модульную конструкцию из трёх файлов, которой с удовольствием пользуюсь Первый файл - Folders.bat - является главным и интегрирующим в себя управление другими двумя файлами
Folders.batCLS @echo off if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) set OUTPUT=nul if "%STDOUT_REDIRECTED%" == "" ( set STDOUT_REDIRECTED=yes cmd.exe /c %0 1>%OUTPUT% 2>%OUTPUT% exit /b %ERRORLEVEL% ) :: CОБИРАЕМ ДАННЫЕ ОБ ОТКРЫТЫХ ОКНАХ ПРОВОДНИКА И ЗАПИСЫВАЕМ ИХ В Folders.cmd Folders.ps1 :: --- Рабочий код --- :: --- Конец рабочего кода --- :: ЖЁСТКО ПЕРЕГРУЖАЕМ ПРОВОДНИК :: Первая часть :: Notification Area Cleaner :: Created by Hally Master hally_master (at) yahoo (dot) com :: Distributed by www.7tutorials.com :: WARNING! This utility restarts your shell (Explorer.exe) and clears your notification area icon cache taskkill /im explorer.exe /f reg delete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams /f reg delete "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream /f :: Часть вторая (самопал) rem убиваем и запускаем по новой explorer.exe taskkill.exe /F /IM explorer.exe rem убиваем taskmgr.exe rem taskkill.exe /F /IM taskmgr.exe :: Часть третья (и последняя) :: Перезапуск диспетчера окон Windows Explorer NET STOP UXSMS NET START UXSMS start "Shell Restarter" /d "%systemroot%" /i /normal explorer.exe :: explorer /select,"%0" :: C:\WINDOWS\explorer.exe /e, taskkill.exe /F /IM conhost.exe :: ВОССТАНАВЛИВАЕМ ОТКРЫТЫЕ ОКНА ПРОВОДНИКА Folders.cmd 1. Итак, Folders.bat первым делом запускает второй файл Folders.ps1, который cобирает данные об открытых окнах проводника и записывает их в третий файл Folders.cmd 2. Затем в Folders.bat идёт прикладной модуль В нём можно прописать нужный Вам код. Я, например, прописал жёсткую перезагрузку Проводника Windows Использую и для других частных ситуаций типа перезапуска проигрывателя вместе со всем звуковым трактом винды и т.п. 3. Ну а под конец Folders.bat запускает полученный на первом этапе Folders.cmd, который содержит в себе адреса окон Проводника, которые были открыты в момент запуска батника Folders.bat И окна проводника восстанавливаются в том виде и количестве, которое было до запуска Folders.bat Вот такая модульная конструкция. Да, самый главное забыл - вот Folders.ps1, который и сохраняет адреса открытых окон Проводника в файл Folders.cmdFolders.ps1(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object { $localPath = $_.Document.Folder.Self.Path "C:\WINDOWS\explorer.exe /e, `"$localPath`"" }| Set-Content Folders.cmd Если кого заинтересовала моя конструкция и есть предложения как её упростить, то буду тока рад Вашим советам. Особо интересно перевести конструкцию к одному языку, лучше к cmd, поскоку PS1 я даже читать не понимаю ... Все исходники брал с разных ресурсов по cmd и PowerShell и перерабатывал\программировал по аналогии и методом научного тыка PS 1 Файлы Folder.bat и Folder.PS1 легко содаются из приведённых выше кодов. Foder.cmd не привожу, поскоку он создаётся в процессе работы. Файлы, естественно, должны лежать друг около друга. PS 2 У меня в системе файды PS1 запускаются из проводника Windows Если есть необходимость, то добавлю готовые файлы в раздачу.
|
AZJIO
- Longevity: 6 years 7 months
- Posts: 1319
- REPUTATION:127[+] [-]
|
96863 Если кого заинтересовала моя конструкция и есть предложения как её упростить, то буду тока рад Вашим советам. Особо интересно перевести конструкцию к одному языку, лучше к cmd, поскоку PS1 я даже читать не понимаю . Вряд ли cmd сможет выполнить такой код. Shell.Application это объект проводника, через него можно выполнять любые команды, всё что может проводник. Здесь метод ".Windows()" получает все окна проводника. Далее ForEach-Object - цикл , в котором перечисление объектов окон, метод ".Self.Path" свой-путь в переменную $localPath, ну и следующая стандартная команда запуска проводника с передаваемым ему пути. Если что справка по объектам я выкладывал вместе с AkelPad, там есть файл wsh.chm
|
AZJIO
- Longevity: 6 years 7 months
- Posts: 1319
- REPUTATION:127[+] [-]
|
rekshd, мне пока лень, но PureBasic и AutoIt3 может разными путями всё это проделать. Найти окна проводника, скопировать текст с адресной строки, сохранить в файл. Или получить доступ к объекту проводника и обычным запросом получить путь. Но только код по работе с объектом комбайн ещё тот.
|
rekshd
- Longevity: 5 years 9 months
- Posts: 331
- REPUTATION:7[+] [-]
|
Да, после регистрации сейчас крайнего PKM_DLL перестал вообще запускаться Проводник по хоткею Win+E И ПКМ по дереву папок также вышибает Explorer в ошибку и перегружает его ... Зато стало выводится большое количество выделяемых файлов, чего раньше не было. (при debug=1)
|
Отправлено: 11-Sep-2022 07:29
(after 2 hours 38 minutes)
AZJIO
- Longevity: 6 years 7 months
- Posts: 1319
- REPUTATION:127[+] [-]
|
96869Да, после регистрации сейчас крайнего PKM_DLL перестал вообще запускаться Проводник по хоткею Win+E Перекачай, исправил. Проблема в регистрации Folder вместо Directory. Я пробовал метод тыка чтобы избавиться от падения, так как один вариант подразумевает папки, второй включая объекты, типа "Мой компьютер".
|
Current time is: 05-Oct 02:20
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|