[Quote]

    rekshd
  • 19892
  • Longevity: 3 years 11 months
  • Posts: 324
  • REPUTATION:7

    [+] [-]
aa Решил выложит модульную конструкцию из трёх файлов, которой с удовольствием пользуюсь aa
Первый файл - Folders.bat - является главным и интегрирующим в себя управление другими двумя файлами

Folders.bat

CLS
@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 bb
Использую и для других частных ситуаций типа перезапуска проигрывателя вместе со всем звуковым трактом винды и т.п.
3. Ну а под конец Folders.bat запускает полученный на первом этапе Folders.cmd,
который содержит в себе адреса окон Проводника, которые были открыты в момент запуска батника Folders.bat
И окна проводника восстанавливаются в том виде и количестве, которое было до запуска Folders.bat
Вот такая модульная конструкция.
Да, самый главное забыл - вот Folders.ps1,
который и сохраняет адреса открытых окон Проводника в файл Folders.cmd

Folders.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
и перерабатывал\программировал по аналогии и методом научного тыка
ah
PS 1 Файлы Folder.bat и Folder.PS1 легко содаются из приведённых выше кодов.
Foder.cmd не привожу, поскоку он создаётся в процессе работы.
Файлы, естественно, должны лежать друг около друга.
PS 2 У меня в системе файды PS1 запускаются из проводника Windows
Если есть необходимость, то добавлю готовые файлы в раздачу.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 9 months
  • Posts: 1161
  • REPUTATION:127

    [+] [-]
96863
Если кого заинтересовала моя конструкция и есть предложения как её упростить, то буду тока рад Вашим советам.
Особо интересно перевести конструкцию к одному языку, лучше к cmd, поскоку PS1 я даже читать не понимаю .
Вряд ли cmd сможет выполнить такой код. Shell.Application это объект проводника, через него можно выполнять любые команды, всё что может проводник. Здесь метод ".Windows()" получает все окна проводника. Далее ForEach-Object - цикл , в котором перечисление объектов окон, метод ".Self.Path" свой-путь в переменную $localPath, ну и следующая стандартная команда запуска проводника с передаваемым ему пути.
Если что справка по объектам я выкладывал вместе с AkelPad, там есть файл wsh.chm

[Quote]

    rekshd
  • 19892
  • Longevity: 3 years 11 months
  • Posts: 324
  • REPUTATION:7

    [+] [-]
96866Вряд ли cmd сможет выполнить такой код
Другими словами, функционал по сохранению перечня окон проводника в файл Folders.cmd
(то, что делает скрипт Folders.ps1) в старом добром батнике реализовать невозможно ?...
Исчо другими словами, файл bat можно перевести полностью на современный PowerShell и
всю конструкцию реализовать не виде bat + ps1 + cmd файлов,
а тока в виде ps1 + cmd.
Впрочем для этого мне нужно изучить работу с PowerShell ac
Повторюсь - если командную строку и bat\cmd я исчо худо бедно могу прочитать, интерпретировать и подправить,
то PowerShell вызывает у меня сразу Альцгеймера и Паркинсона вместе ai

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 9 months
  • Posts: 1161
  • REPUTATION:127

    [+] [-]
rekshd, мне пока лень, но PureBasic и AutoIt3 может разными путями всё это проделать. Найти окна проводника, скопировать текст с адресной строки, сохранить в файл. Или получить доступ к объекту проводника и обычным запросом получить путь. Но только код по работе с объектом комбайн ещё тот.

[Quote]

    rekshd
  • 19892
  • Longevity: 3 years 11 months
  • Posts: 324
  • REPUTATION:7

    [+] [-]
Да, после регистрации сейчас крайнего PKM_DLL перестал вообще запускаться Проводник по хоткею Win+E
И ПКМ по дереву папок также вышибает Explorer в ошибку и перегружает его ...
Зато стало выводится большое количество выделяемых файлов, чего раньше не было. (при debug=1)

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 9 months
  • Posts: 1161
  • REPUTATION:127

    [+] [-]
96869Да, после регистрации сейчас крайнего PKM_DLL перестал вообще запускаться Проводник по хоткею Win+E
Перекачай, исправил. Проблема в регистрации Folder вместо Directory. Я пробовал метод тыка чтобы избавиться от падения, так как один вариант подразумевает папки, второй включая объекты, типа "Мой компьютер".


Display posts:    

Current time is: 06-Dec 06:09

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