Страница 3 из 3
Добавлено: Пт июл 29, 2011 22:37
shveicar
Andrey_A писал(а):Я пользуюсь таким скриптом, может поможет, если необходимо подправьте под себя
Спасибо, вот так скрипт, буду тестить.
Flasher писал(а):Прописать %N в параметрах.
Для новой кнопки не забыть очистить путь запуска
Все сделал работает, но опять интересная картина- просто папки и файлы выделяет, но когда отображено все содержимое, работать не хочет, а исходный скрипт
скрипте при таком режиме выделяет только каталоги, а с файлами работать не хочет- может проблема в этом ?
Andrey_A писал(а):Всвязи с проблемой Helpera (при большом к-ве файлов) использована утилита NirCmd.exe
Добавлено: Пт июл 29, 2011 22:50
Flasher
shveicar писал(а):но когда отображено все содержимое, работать не хочет
В каком смысле "отображено всё содержимое"? Содержимое чего?
shveicar писал(а):а исходный скрипт скрипте при таком режиме выделяет только каталоги
При каком "таком" режиме?
shveicar писал(а):может проблема в этом ?
Эта проблема старой версии. В последней
этого нет.
Добавлено: Пт июл 29, 2011 23:23
Andrey_A
работать не хочет
Я долго пытался, в своё время, справится с буфером с помощью TCS, но NirCmd.exe оказалась стабильней
http://www.nirsoft.net/utils/nircmd.html
скрипт немножко подправил
Добавлено: Пт июл 29, 2011 23:48
Flasher
Andrey_A
Это, конечно, лучше обсуждать в
другом месте, но, честно говоря, при использовании инструмента IE в одном месте скрипта лучше его использовать и в другом.
А касаемо утилит
Tol!k уже не раз предлагал ConClip.
Откровенно, совершенно не понятно, зачем для такой простой задачи такой громоздкий код.
Убрал из
этого скрипта использование буфера.
Добавлено: Сб июл 30, 2011 01:04
shveicar
Flasher писал(а):В каком смысле "отображено всё содержимое"? Содержимое чего?
Поясняю - захожу в текущей катаог, в нем множество вложенных каталогов с файлами, далее поиск искать все файлы с расширением(.wmv) Далее отобразить все найденое, и вот здесь для сортировки - пытаюсь применить скрипт. На данный момент в таком режиме, а также в режиме рекурсии- работает только плагин filex, А все остальные скрипты -(относящиеся к этой теме) работают в режиме простого выделения(то-есть, срабатывают только в режиме текущей панели, без вложенности) Возможно это связанно с портабельностью totala (честно говоря- первый раз такая ерунда) Helpera -обновил, но безрезультатно. На днях, проверю на виртуальной машине, со стандартным totalom. Скорее всего дело в этом. В любом случае спасибо Всем за помощь.
Добавлено: Сб июл 30, 2011 01:23
Flasher
shveicar
В режиме DirBranch не работает, потому что в скрипте перебираются соответствующие элементы текущего каталога, а не элементы рекурсивной серии каталогов. К тому же в этом режиме используются относительные пути, а при загрузке выделения из буфера по команде cm_LoadSelectionFromClip тип путей должен соответствовать текущему режиму. Полные пути должны быть для стандартного режима, относительнгые для режима "без подкаталогов". Т.е. тут требуется выделять все файлы, выискивать отправной каталог во всех путях, потом формировать список путей относительно этого каталога и уже потом отправлять отфильтрованный список в буфер и загружать из него выделение. Это процесс довольно много ресурсов будет кушать и глюков, соответственно, может быть ещё больше, чем в приведённых вариантах.
Добавлено: Сб июл 30, 2011 01:37
shveicar
Спасибо Flasher - за разъяснение, но для режима (найти и отобразить все) и DirBranch - прекрасно работает плагин filex. так что придумывать что -то еще, нет смысла. Еще раз благодарю, за проделанную работу.
Добавлено: Сб июл 30, 2011 12:12
Flasher
Безоконный вариант (удобно вызывать с клавиатуры):
Код: Выделить всё
' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметр: %N
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
With CreateObject("Scripting.FileSystemObject")
Set CD = .GetFolder(CreateObject("WScript.Shell").CurrentDirectory)
If .FileExists(N) Then
For Each F in CD.Files
If Len(F.Name) = Len(N) Then A = A & vbnewline & F
Next
ElseIf .FolderExists(N) Then
For Each F in CD.SubFolders
If Len(F.Name) = Len(N) Then A = A & vbnewline & F & "\"
Next
Else MsgBox "Установите курсор на файле или папке!", vbInformation
End If
End With
With CreateObject("TCScript.Helper")
T = .GetTextFromClip
.SetTextToClip(A)
.SendCommand 2033, True
.SetTextToClip(T)
End With
Wscript.Quit
Добавлено: Сб июл 30, 2011 14:13
shveicar
Flasher писал(а):Безоконный вариант (удобно вызывать с клавиатуры):
Спасибо - вариант очень удобный!
Добавлено: Вс июл 31, 2011 18:55
Flasher
В общем, посмотрел, вроде ничего сложного. Т.е. теперь работает и в режимах "без подкаталогов" и "файлы на панель" после поиска.
Код: Выделить всё
' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметры: %N "%P"
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
CD = WScript.Arguments(1)
If Err.Number > 0 Then
MsgBox "Установите курсор на файле или папке!", vbInformation
Err.Clear
Wscript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("TCScript.Helper")
T = .GetTextFromClip
.LockTC True
.SendCommand 524
If FSO.FileExists(N) Then .SendCommand 3302, True
If FSO.FolderExists(N) Then .SendCommand 3303, True
.SendCommand 2018, True
.SendCommand 524
For Each F in Split(.GetTextFromClip, vbnewline)
If Len(FSO.GetFileName(F)) = Len(FSO.GetFileName(N)) Then
If Len(CD) > 0 Then
A = A & vbnewline & Mid(F,Len(CD)+1)
Else A = A & vbnewline & F
End If
End If
Next
.SetTextToClip(A)
.LockTC False
.SendCommand 2033, True
.SetTextToClip(T)
End With
Set FSO = Nothing
Wscript.Quit
Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее.
Добавлено: Вс июл 31, 2011 20:48
shveicar
Вот -это Скрипт, Отличная работа, Спасибо.
Flasher писал(а):Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее
Так ведь дело, не в скорости, а в функциональности! Да и потом, Я особой разницы, в скорости не заметил. Такой скрипт, может занять почётное место в коллекции инструментов Total Commander!